Coarse-grained COTS Software Component Architecture, Integrated by Programmable Middleware; New Human Computer Interactions. John A. Bayless, Ph.D. bayle_j@cs.odu.edu Introduction This paper describes Software Component Architecture using programmable middleware to integrate entire COTS (commercial-off-the-shelf) software products as components. It possesses new qualities of HCI (human-computer-interactivity) synthesized by properties of the architecture, and supports new actionable cognitive-behavioral HCI possibilities, not anticipated before they emerged during system observation. These HCI phenomena have become visible for the first time, having apparently been initialized in the concrete realization of the architecture, because of properties specific to the inclusion and role of programmable middleware in the design. Initial objectives of the project were to [1] greatly simplify design and development of software to do systematic, asynchronous, user-driven work, such as research users need in long involved tasks requiring frequent expert user judgment, [2] enable computercapable, but non-computer science professionals, to design and build software suites to do complex practical tasks advancing their work. The model is a workbench, and bench tools devised and needed by intellectual craftsmen, for idiosyncratic, personal, expert professional use. Version 1.0 described here is one example. Other COTS components can be quickly installed to create radically different suites, the major objective of the method. Executable software components and elements already in the user’s repertoire can be integrated into an overall architecture with the COTS components as well. The architecture concept was successfully built, and the software and methodology were exercised over 10 following months of producing experimental application prototypes. The unanticipated actionable properties of the architecture were noted and observed, which are of interest in computer science and computational cognitive science. They appear to be a fruitful new research area, and are discussed in the last two sections. History, Rationale, and Methodology The writer became interested in the potential of programmable middleware to accomplish the practical objectives stated above in mid 1995, on being exposed to a primitive early version of such software, and began monitoring emerging products, and computer science and engineering literature. These objectives were refined and a development strategy formulated. A proposal presented to US Army Logistics Integration Agency in February 1998 was funded in August 1998. The concept, middleware, and components were demonstrated in November 1998, prior to an integration accomplishment and architecture build. Work funded privately in April 1999 enabled reduction to practice and prototype development. It was rolled out at a Federal CIO Council Expo February 23, 2000. John Bayless Page 1 3/8/2016 Rationale for a middleware approach to a COTS-component architecture was visualized almost immediately upon initial exposure in 1995. Although the component architecture model initially appeared in terms of objects as components, the main reason discouraging consideration of stand-alone commercial products as components has been the daunting complexity of structural architecture matching and mating such components. In systems dealing with user interaction, the programmable middleware sidesteps this issue. Second, ‘products’ are unambiguous concepts to users for whom the model was evolved. Third, the practical technology for facilitating application products in large computer systems evolved as middleware. Its functionality varies, but in client-server settings middleware provides services between operating systems and application software including [1] internal messaging and communication, [2] environment application links analogous to APIs, [3] transaction monitoring or auditing, [4] gateways to other services and applications, and [5] data connection. Services vary as one goes up or down scales of cost and scope, but these are typical. The writer’s insight was that programmability could potentially extend any attribute of architecture virtually, into a particular middleware’s other native capability. Programmable middleware as such, receives very scant mention in computer science literature, which was a major surprise. A review in 2000 by Bachman, et al., of the SEI at Carnegie-Mellon, cites only 2 (!) articles, a 1995 paper by J. Bergstra at the University of Amsterdam describing a scripted “toolbus” in an early stage of design at the time, and a 1998 paper by Berry on Finesse, a language for manipulating abstract bindings among large scale components. The writer verified in Mar 2001 by a search for ‘programmable middleware’ and related terms on multiple search engines, that this is still the case. A research commitment was to create the entire architecture model infrastructure from COTS products. Inventing infrastructure and new tiers in infrastructures is too difficult. Paramount questions are: Is this objective practical? Is it feasible to hope to empower technically capable, non-computer science professionals thus, given the technology limits of the market? Is architecture possible within those limits? The critical path had to lead to COTS infrastructure with features supporting interesting workbenches and commercial vitality to ensure practical longevity and successive technology upgrades. Analysis of OEM (original equipment manufacturer) mid tier products revealed products with some or all integrating functions of middleware not described as ‘middleware’ by OEMs for business model reasons. Products with long user experience, stable platform support, and ubiquity, possessing integrating functions, plus programmability, did exist. The COTS product selected was a programmable support platform tier produced by the OEM as infrastructure for their own manufactured large-scale enterprise software. The OEM business model focuses on sale of their vertical market products supported by the platform, and only incidentally on sale of the middleware itself. The term ‘middleware’ is not used in their product literature, but the descriptions following will make clear how it meets the rule. Personal communication between the writer and many of the OEM top technical and engineering design managers agree this is an accurate characterization. Four Large-grained COTS Components were selected. They include [1] a portal to data, work groups and workflow, [2] support for geospatial work display and logistics user John Bayless Page 2 3/8/2016 workflow cognition, [3] EDI mapping with services across many commercial domains, and [4] automated records management (which is DoD Standard 5015.2 compliant.) Choices reflected the writer’s desire to create a demonstration that could be programmed to show off applications to a wide audience. A capable-user should be able to produce specifications from the user’s domain of applications, at the same level of abstraction. Design at the level of selecting COTS products determines the features and code base of the system. The end user thereby has detailed specification influence not typical of “big” software design. With infrastructure and components chosen, their resource connections are now the nodes of many possible user layouts, with fluid native capabilities. This is the desired result. Design is now adaptable to the capable user’s expertise: Design always structures the user’s process. Instead of conforming user process detail to structural detail necessity, this process known best to the user can be laid out in large fluid chunks by the user. This design model now accepts user choice uncertainty. The user can now think about interventions, and create required access to the run-time process. The product evaluation is for suitability to user process, rather than infrastructure plumbing. The expert user’s workbench preferences can now structure a bench-tool process design, almost completely idiosyncratically. The following figure summarizes the architecture as defined after the technology review, at the end of the design phase. Coarse-grained component architecture With “shrink-wrapped” COTS applications as components, integrated by programmable middleware, and centrally served user-interactive process automation workflow . . . • Middleware centrally builds and executes automated just-in-time data messaging between integrated components and processes, confluently compiled into centrally executed user applications. • Users interact with and control the system in real time, via web browser interface receiving interactive web pages • Integrated COTS software applications & product-based services: – EDI mapping and e-commerce automation embedded in the business process automation – Electronic records management integrated into the work flow and the process application builder • DoD Standard 5015.2 compliant – Enterprise portal access to both data and workflow – Geo-spatial workflow and data presentation Figure 1. Characteristics of the Suite at the End of the Design Phase John Bayless Page 3 3/8/2016 The first three bullets characterize the design attributes as ‘system’ in summary. Bullets at the bottom list Coarse-grained Architecture Component capabilities. COTS product components and summaries of their features are identified in Figure 2. Architecture Overview Architecture is designed structure and infrastructure that ‘stands up’ components of an entity and permanently establishes relationships between them. In software engineering, architecture applies to tiers of permanent logical and electronic structure for logical data and meta-data ‘piping’ between software and hardware components. The following is a summarized structural image of the suite. It is an as-built example of the possibilities afforded by programmable middleware integrating COTS components. This approach to establishing the architecture, successfully avoided the problem of designing and building a new tier of permanent structural logic to mate plumbing and wiring differences of fully completed COTS software components. It also has synthesized and virtual aspects that support new HCI qualities, which appear to have been synthesized from within the suite as built, and establish additional value, or raison d’être, for application and study. Figure 2. The Coarse-grained COTS Component Architecture Suite As Built The architecture components are named here, as well as characterized, to emphasize that this is truly an architecture of COTS commodity software products. These are out-of-theshrink-wrapped-box, unmodified, standalone, commercial products. They do not need each other, or the middleware, in their regular business lives. Not included here, but part John Bayless Page 4 3/8/2016 of the system, is Microsoft Back Office, mounting the middleware and products on NT Server 4.0, providing MS Exchange e-mail services, Outlook e-mail client, Microsoft IIS web server, Internet Explorer 5.5 browser client, and SQL Server, data base to workflow resources, all of which are also employed in the suite. This was a convenience since NT 4.0 Server platforms the middleware. Other e-mail servers, ODBC databases, web servers, and browsers are equally workable. Drawing on the functionality of the four integrated components, a runtime engine native to the middleware, serves process-centric, agent-triggered, middleware-built, workflow automation to the users of the system,. With different COTS software components using the same middleware and methods, the suite functionality would be totally different. Many possibilities are afforded by the model. New levels of access to design, software system building, and application development is now exposed to capable users who are not software engineers or computer science professionals. Self-initiated capable-users are not required to see interior plumbing to add components, or with minimal assistance and mentoring, to specify, design, build, program, and use a kind of en suite software based on attributes of the architecture, provided by the middleware. The architecture’s centrally positioned attributes, native to the middleware, include: Resource links to data anywhere in the world, reachable through LAN or WAN and TCP/IP, or dialup telephony. Links that integrate external application software—the COTS components. Application building/programming environment creating ‘suite-oriented’ application building perspective. The application builder has a view from which to program all integrated COTS products simultaneously, from the highest level in the system. Comprehensive suite applications use and control the executable resources of all COTS software components at runtime, from one central middleware runtime engine. Centralized workflow programming tools in the application builder, referencing the entire data environment, enable the embedding of inter-component runtime data messaging within every user application program. End-to-end process automation service to all users, draws on any linked data and integrated software. Different users instantiating different applications software are served data messaging and inter-component workflow automatically. User interaction GUIs are web browser screens. The middleware application builder authors web sites and built-on-the-fly interactive web pages, sent by the runtime engine to an IIS or Netscape web server, supporting runtime user interaction ActiveX controls and Javascript are not required or used for web automation by the middleware application builder. They are available as extra automation features, or may be omitted entirely, should user security so require. Computer-telephony integration also provides voice-enabled services, optionally including high-end voice, speaker, and natural language recognition,. John Bayless Page 5 3/8/2016 A. The Middleware View The middleware view is in the bottom half of the following graphic. Figure 3. Summary Structure and Features of the Programmable Middleware. The two outside blocks in the top row are user connection functionality. The two inside blocks are data connection resources and a software agent pool, respectively. The middleware creates user interaction GUIs through a native web site publishing capability, producing built-on-the-fly pages, with control, text, and data input for realtime user interaction and manual workflow intervention. Pages served to the user’s PC browser provide the primary GUI interface and user screens. They afford users text and graphic work output from the functionality created by the entire suite and its applications, and interactive input controls and data entry fields for entering human judgments and interventions in the runtime automation. The application builder includes a web page editor among its tools. Most third party tools such as DreamWeaver can also be used for authoring. Their HTML files are reopened in the native editor to have middleware-specific control tags added. The use of outside tools especially, affords the capable user/designer state-of-the-art control over every multimedia detail of interactive system GUIs. The middleware publishes pages at run-time to IIS or Netscape web servers. John Bayless Page 6 3/8/2016 In addition to this PC-and-browser interface, the middleware provides computertelephony integration and has telephony, fax, pager, WAP resource connections, and optional high-end interactive voice recognition and text-to-speech capability. The voice recognition features include speaker recognition, vocabulary to 200,000 words and phrases, and recognition through regional accents and imperfect grammar. In a group research setting the workflow can generate and complete remote telephone or pager messaging to team members who may be across a campus or across the world, in real time, in correlation with workflow events. For example, to wake up and logon to observe crucial experimental events. Fax and pager text can be sent in the same way, composed dynamically by the workflow and transmitted to a single recipient or to a hundred-member research team. ODBC database client and host-terminal access to hosted legacy data are provided. Major RDBMS products such as Oracle can be accessed directly with middleware registered clients. Product with registered ODBC drivers, from Excel spreadsheets to statistical analysis products such as SPSS or Systat, can be reached as data sources, or to receive computed data from the full suite. Terminal emulation products such as NetManage provide mainframe host access via 3270, 5250, VT-100, other emulated terminals. The system learns and retains host screen navigation to provide networked hosted data and application connections. Basic software agent services are allocated from a pool to monitor web job logon pages, allocated telephony job phone and fax lines, clocks, database conditions, the integrated application conditions, other triggering events. When an event such as a user logon occurs, the agent instantiates and runs assigned stored workflow services, initiates services and actions requested by the user, interprets user trigger events such as the mouse clicks on web page controls, and supervises jobs internally according to the evolving conditions created by the user. When simultaneous users are logged on, separate agents are assigned to each user, instantiating entirely separate conditions and jobs for each user. In a single middleware-server node system, up to 30 users can be accommodated simultaneously. In multiple node systems each middleware server node can accommodate from 250 to 280 simultaneous users. Some large commercial OEM installations have in excess of 850 or more nodes, deployed worldwide, able to serve well over 225,000 simultaneously logged-on, distributed users.. Integrated COTS product architecture components are lumped in the red block. Although this effort focused on COTS product components, any well-behaved executable software reachable through the system links can be integrated, including legacy, custom-built, or experimental software in the user’s portfolio, and COM objects. B. Component Mating and Data Messaging Each product is linked to the middleware, which functions as the backbone of the suite, through an idiosyncratic combination provided by the product’s native APIs, shared databases, and the DLL and NT Command objects of the of the application builder and runtime engine. Registering COTS product DLLs and their functions in the middleware library services, allows the application builder to reference, and the runtime engine to John Bayless Page 7 3/8/2016 directly access, product DLLs and their functions through DLL objects in compiled automated workflow jobs, created in the application builder. This software application integration linkage, analogous to an API, is common to all application software in the middleware environment, i.e., the COTS product components Similar application builder reference and runtime engine access is provided by an NT Command object. Command objects in the workflow stream cause NT commands to be executed, and make it possible to wrap command line scripts within Command objects. This enables construction of original command line scripts embedded in compiled C++, callable as primary tasks, or as workflow subroutines. Abstract and practical design factors arise from the locale of DLL integration and Command Line objects as resources situated in the middleware application builder and runtime engine, as follows: [1] They enable just-in-time coupling of component resource connections, [2] to data connections allocated just-in-time by a runtime code stream, [3] exchanging application run-time values between components and workflow [4] in data objects native to the middleware, in a component workflow process that would otherwise be provided in a messaging tier. This virtualizes all the literal structures of logical abstraction or integration plumbing. A recurring software engineering caution or advice encountered during the project was that such a loose coupling could result in non-robust, inefficient, architecture failure points, but in experience, this was not the case. All actual connection and data messaging among the COTS components is an on-the-fly, just-in-time process, as summarized below, rather than permanently embodied structure such as tiered difference-matching abstraction and metastructure. Natively embedded workflow tasks, procedural steps, tools and rules needed at each step, source and destination resource connections, input and output data objects, application builder, and runtime engine, make it possible to construct virtually in the middleware, all the inter-component data and meta-data messaging results that would be conventionally performed in a new permanent structural architecture tier. During the application design process, the processing features and services to be provided by the diverse COTS products are identified. Accessing and using them as a programming activity is performed in the application builder. This will typically require data input to the product feature or service, the service or feature operation on the data, and data exit to a destination. This process and operations are specified in the application builder with tools mentioned above. Ultimate sources and destinations of data will be databases and/or other applications reachable by the middleware on the TCP/IP network, referenced by IP address and data name in the application program. Local or proximal sources and destinations at runtime are discussed below. Data messaging and other inter-component workflow required for each application is interleaved and confluent with normal procedural steps of the functional application John Bayless Page 8 3/8/2016 programs, such that just-in-time data messaging workflow is compiled into every application program. The total compiled object code is a bi-level application that executes its own messaging as a just-in-time process function, concurrently with application code procedures, via the runtime engine. This virtualization of the architecture’s results, avoids the requirement for a permanent structural messaging tier, and associated runtime processing overhead. Accessing and using data links at runtime is done by the runtime engine running the compiled application. The proximal data sources and destinations, when the runtime engine is processing, are varied. Sometimes database connections or other ODBC sources themselves are allocated in-line during the workflow. This is especially true during short workflows involving many independent users, like standard transaction processes. With a long complex workflow for a single user, the proximal data sources and destinations are internal middleware data objects: typed objects, list objects, package objects, complex objects, etc, native to the workflow process, located in RAM, on-board cache, or page addresses known in the runtime stack. Intermediate data objects will be used repeatedly in longer workflows. Automated just-in-time workflow linkage is to application resources throughout application domains ranging from a single room to worldwide. Workflows can be catenated end-to-end to create complex messaging extended through the domain. Especially in systems where interacting human behavior latencies predominate there may be nothing practical to improve by architecture matching and mating structural software components, and very little to risk relying on loose coupling. Benefits of loose coupling are high: Conceptual clarity, fast assembly and minimal cost , all for the capable-user-designer-developer. It is a capable-user-friendly strategy. Product APIs provide access to product functionality through the manufacturers APIs (application programming interfaces). These are accessible from the users application programming perspective. This subtle but necessary conceptual difference addresses the bi-level nature of the compiled executable application code. Two interleaved correlated programs are compiled together. One executes the user’s functional application, whether it be related to conduct of research, scientific data analysis, combat management, or commercial activity. The other executes correlated component data messaging, building structural connections just-in-time, de-allocating after use. User application connections will be through the COTS product APIs in most cases, accessing application-value features. Workflow and data messaging connections will always be through the middleware facilities because of their logical hub location in the architecture. No logical or locale necessity prevents application connections from the middleware facilities, however. Registering product DLLs and their functions in the middleware, allows the application builder to reference, and the runtime engine to directly access product DLLs and their functions through workflow DLL objects. To the OEM, these hooks facilitate integration of the middleware smoothly into customer environments. They allow designers of customer installations to hook seamlessly to existing customer software and pass transaction values back and forth between already installed functional John Bayless Page 9 3/8/2016 customer software and processes, and the workflow mediated processes of the new OEM vertical products installed. However, these application builder and runtime engine DLL object hooks mean that all process resources of a COTS product can be introduced as user workflow functionality, not merely that which incidentally facilitates middleware OEM vertical product integration. Users can write and register their own DLLs to access product functionality in any idiosyncratic way facilitating user workbench purposes. Similar application builder reference and runtime engine access is afforded via the NT Command object. Each NT Command object in the workflow contains one NT command to be executed, which is the way they are typically used by OEM designers hooking up a customer workflow integration to pass and receive values between installed customer software and workflow controlled OEM software. It is also possible to chain Command objects, enabling construction of command line scripts called from objects in compiled C++, as primary tasks, or workflow subroutines. Other integration linkages include Shared product and/or any other databases to which the middleware connects via a registered database client, (e.g., Oracle) or an ODBC client. Best-practice use of the middleware also includes a database as a central working repository. All component software has access to this database. Access to IBM, UNIX, other hosted data and applications via terminal emulation. The runtime engine runs the compiled C++ bi-level workflow/functional applications for the suite, created by the native application builder. Collections of these jobs comprise functional application services of the system, instantiated and run by the system’s software agents. This is discussed more under Workbench Job Descriptions. Because of the OEM’s strong focus on other attributes, a number of the most interesting structural and functional results that stem from technical properties of this middleware had not been investigated before the writer’s search for COTS workbench infrastructure. Many of the notable phenomena possible to create and support with programmable middleware flow from these uninvestigated properties, Research Workbench Requirements and Middleware Affordances For capable users envisioned by the research, these are actionable properties and hooks provided by this Large-Component methodology. They point ahead to other extensions, not now part of the prototype version. A. General Middleware Extensibility General extensibility is an undocumented actionable property of the middleware afforded by application builder and runtime engine DLL and NT Command objects. Using them this way enables the middleware to be an architecture ‘shape-shifter,’ one of the primary practical attributes required by the ‘Research Workbench’ project. As immediate design and programming affordances, integration of complete multiple products through these application builder and runtime engine DLL and Command Line John Bayless Page 10 3/8/2016 objects, means that all the process resources of the COTS product components can now be introduced as user workflow functionality. B. User-Designed Functions, Features, and Component Code Base In this regard the affordances of a middleware-integrated research workbench make it possible to take advantage of thousands of COTS products that are highly specialized niche items designed to stand alone, or user require customization. This means being able to buy and use the same code over and over, just as a homeowner uses browser and e-mail. Middleware and architecture allow the user to assemble a re-usable commodity product code-base quickly and inexpensively, rather than slowly build an expensive code base with little long term potential. The workflow code itself, derived from the application builder is only 1 to 2 percent of any Workbench Job application’s total compiled code—The rest is the middleware connection infrastructure code that comes out of the box, plus Component functionality code, which also comes out of the box. The small amount of code actually originally written for a given Job Description is leveraged by 50 to 100 times as much re-used infrastructure code, which is unchanged from job to job. The resulting improvement in immediate efficiency and practical utility and value of computers in the world of the individual researcher is immediately obvious. C. The Capable-User Software Builder and Self Developer It is entirely practical for a computer-capable person willing to give two weeks to formal application-builder training, and a little more in practice, to be a self-developer. In commercial practice customer applications are built from flow-charted designs evolved together by a customer-user and trained developer. The middleware’s application builder was designed to create workflow applications originally called Job Descriptions, a name inspired by early 90’s software agent technology. Agents as designed then, monitor IVR telephone lines, trigger workflow applications requested by callers, interpret interactive user-originated events, then trigger appropriate system workflow responses, until the user session is closed out, hence these were visualized as a software agent’s job description. Those features were extended to the web extensions introduced in 1996, to monitor users signing on to web logon pages, and user page events. The Job Description concept is apt for Workbench applications, so these are called Workbench Job Descriptions, as a metaphor for connectable knowledge work elements in the human researcher’s job. In the demonstration, the term Job Description applies to application builder programs doing rule-based work based on user-added knowledge. The workbench model is not limited to rule-based work, however, even in its present iteration. In-line inferential algorithms and complete AI software applications can be integrated into the architecture today. Inferential and AI functionality is immediately available to the Workbench Job Description application builder, just as is rule-based logic. This is expanded in the next section. The application builder uses drag and drop elements—objects—mapped to a multilevel GUI flow diagram, to develop the most often used actions of typical workflow process, such as database transactions. Each object exposes built in methods to the developer in menus and dialog boxes. COM object automation can also be included in a workflow. John Bayless Page 11 3/8/2016 Finally, the entire analytical and developmental power inherent in the C++ programming language is represented in the application builder by objects called Expression Forms, thus enabling a capable user to build and include logic and analytical computation to any level of detail required by the researcher’s task at, or for, the Workbench. Completed flow diagrams that comprise Job Descriptions are compiled into segmented C++ executables, run by basic software agents that monitor the triggering events in the system, such as a user signing on to a job logon page. Users control the suite through an exchange of built-on-the-fly web pages with the middleware’s native web site, which present GUIs to the user, including text boxes for natural language entry. Optional voice and speaker recognition capability provides spoken text entry, although the current demo was not equipped with this feature for cost reasons. Interpreted natural language, written or spoken, allows modification of the GUI controls. Human-Computer-Interactions in Programmable Middleware Architecture After the software component suite was reduced to practice with the programmable middleware, it was observed in action for 10 months, being used to produce prototype application trials. Several interesting, unanticipated, new attributes were seen. None are counterintuitive, now that they have been noted, but few were predicted either, because they are a different kind of affordance phenomena than the writer had been predisposed to imagine through earlier experience with the software. Post-integration observation and reflection provided a deep “Aha” experience. They present new issues in computer science and computational cognitive science. A. Suite-Programming Point Of View A new suite-programming point-of-view has been introduced by the architecture. The application/builder runtime engine locale is also the physical means for performing (and observing) what is described next. In affordance terms, runtime engine and application builder are a single locale. The application builder is the user interface to the runtime engine, thus also exposing its affordances. Extension of the middleware is done here by using these loose-coupling links to access properties of external COTS products integrated as components. Other links may exist and be used as well but the application builder links tie directly to component executables and DLLs. Initializing and linking the architecture and suite is as follows, in summary: The middleware platform is installed on a TCP/IP network. The data sources must be accessible from the network, with optimum access deployment being on the same LAN or WAN. The initial middleware install is a multi-step, but well documented process. A pre-planned default initial install is perhaps a 1-day process. Initial configuration is a similar multi-step process that can take 2 to 4 more days. COTS software is installed according to the instructions in the boxes, on the TCP/IP network with the middleware. Their IP addresses are registered with the middleware during its configuration. Installation and configuration per OEM instructions, of middleware, database access, and all COTS software, plus installation or connection and configuration of Microsoft Back Office or equivalent services, verification of all IP addresses to the Domain Name Server, John Bayless Page 12 3/8/2016 and final verification of TCP/IP services, completes initial installation of the architecture, components and means for runtime connection are concerned. This is the system build on-site, a process of following OEM and default InstallShield procedures that a capable user can do in person.. Network configuration is also standard, but typical institution procedures will involve using the in-house network technicians who are responsible for maintaining IP addresses and domain configuration. It will be a completely routine ‘allin-the-day’s-work’ task for them. The rest of ‘standing up the architecture’ takes place during application design and at runtime, performed in the application builder and runtime engine, which concretely complete the ‘loose-coupling’ definitions, and their on-the-fly connections at runtime. A subtle new actionable property has now been created. As a structural architecture backbone, programmable middleware makes integrated COTS software programmable also, in ways not fully anticipated. When a purposefully selected suite of COTS products is made the basis of actual application building, something new happens, that does not happen when using the links in incidental customer application integration, as practiced by OEM application designers following the OEM business model, even though the capable-user is reading the same product application user guides. Each separate component is a fully developed commercial product of high value to users who buy it as a standalone item. The product actions and services are features producing task value for the user. Those task values are already in place for the user, or the product obviously would have no market. What is programmed through the application builder to be run by the runtime engine are these in-front-of-the-product task values, features that would be available to a user with mouse and keyboard, and product menu bars, menus, commands and options, for each separate product as a whole. This is not like an OEM application programmer extracting from a hosted data-base with a Host Terminal object to load a List object to send to a table in a Page object. The capable-user application builder working 5 big software products, with an in-front-of-the-product viewpoint, has an absolutely different vision of the affordances at hand, and goes about everything differently. It is a researcher’s viewpoint, not a technician’s B. Architecture-Enabled Suite-Programming Synthesizes Procedure Automation To Users From COTS Products Without Native Procedure Automation Features The component-extended middleware synthesizes workflow automation in a new way, not available in non-extended middleware, which concretely realizes suite-programming. The application developed from this viewpoint is then compiled as a C++ executable. At run-time the runtime engine invokes the integrated COTS software as required to perform the application as programmed. Then another new actionable property appears that is established by the architecture. The runtime engine is now centrally serving the programmed application automation to the extended-middleware integrated component software to perform. COTS product components with no native workflow automation features now perform the automated application task flow by virtue of loosely coupled integration in a programmable architecture—a thought-provoking result. John Bayless Page 13 3/8/2016 C. Architecture Creates New User Cognitive and Control Perspectives Several other new actionable properties now appear due to the architecture, which provide new cognitive experiences for users. [1] The user (or workgroup) perceives an entire suite of separate COTS products as a single multi-featured task entity, when presented by the middleware at electronic speeds, It is user-engaged as a single centrally-controlled unit, experientially. Running Job Descriptions written in the application builder, the runtime engine is serving programmed instruction to each product, as the human developer would use them as independent enterprise-level desktop applications, but now in interactions interleaved among the components at electronic speed. The suite-as-a-whole, under control of the middleware with all the rest of its infrastructure and parts, serves these programmed results on to the interacting user, along with the user’s interactive input as computed in real-time. From a user’s cognitive perspective the architecture centrally serves previous userprogrammed workflow automation, combined with present user interaction, together with free-running product background automation results, to a user’s perception and response options, simultaneously, from all the product-components of the suite. As do most such stand-alone COTS products, the products provide a mix of background and user-operated services. For example, the COTS electronic records management component can be set up to automatically index and file in its own locked repository, as an ongoing background process, any defined document that appears in the workflow, e.g., e-mail with a particular addressee, or sender, or containing particular keywords in the subject line, or in the body of the message. It will also allow the user on-line at the GUI to declare official records on an ad hoc basis, or to declare new classes of records, such as .doc items with different addressee or subject text. There is a large ad hoc feature repertoire designed for user interaction at the desktop, available to the application builder and programmable control, via the NT Command object. Likewise the geospatial display system allows the on-line user creation of new display dimensions and features. All these user-performed features are now automated by the workflow and performed at electronic speeds by a software agent running the workflow. Suddenly, in the perceptual experience of the user, these products en suite are now performing the users formerly manual task stream as a synthesized combination of [a] their own workflow-automated previously-planned behavior, occurring at electronic speeds, served back to them as if by thought, [b] the product-contributed background automation, and [c] their own in-line, real-time behavior at normal user performance speeds, all in relation to outside event sources as well. Users perceive interestingly variable, diverse event-source dimensionalities, bearing information about related events, from a new synthesized perspective. This is a new cognitive computation affordance [2] This observation about suite-synthesized input to user perception also obviously applies to controls. If components provide synthesized input to independent user perceptual modalities (auditory, tactile, multidimensional visual, etc), and at the same time other components receive output from appropriate response option devices, new learned multidimensional user responding and synthesized distribution possibilities, can be created via the centrally programmable architecture as well. John Bayless Page 14 3/8/2016 The suite-programming viewpoint, together with the quality that interactively combines, controls, and adds process automation to previously unconnected processes, and further together with a new perceptual-cognitive perspective, creates a new actionable cognitiveresponse possibility of harmonious control of multiple distributed activities as a user’s physical and cognitive en suite affordance of intention . New visualizations come to mind immediately and will multiply in the minds of others: A battle commander controlling a suite of mobile weapons in the field, in the air, in space, or under water as a singly-intended, multi-dimensional implement; A surgeon controlling several distinct micro-tools as a singly-intended, multidimensional surgical implement; A student entering a multidimensional instructional environment controlled simultaneously in real time by singly-intended teachers, A researcher creating a singly-intended multidimensional research environment, dynamically controllable in all dimensions, in real time, including data recording; Multiple AI applications in synchronous use by singly-intended user Multiple agent communities under singly-intended experimental manipulation Synthesized values produced by all components can be perceived via multimedia display elements and features that can be multidimensional and extremely sophisticated. This leads to other new aspects such as: [1] Possibility for a researcher to comprehensibly perceive multiple synchronous research data sources simultaneously, for understanding by a single experienced mind, [2] the possibility for new comprehensible cognitive learning experience from more sophisticated multidimensional ‘surround’ data display/ exhibition devices, and acquisition of entirely new multidimensional cognitive skills. The system as a whole can be configured as entirely rule based, as rule-based plus input of user present-judgment-based control, or as including inferential AI components, either in-line in the workflow stream, or in the resource product suite. The possibility for creating inferential workflow, or workflow containing AI elements of choice comes first from the fact that they can be included as components in the suite. Multiple AI elements, models and agent communities, can be set up within a single server based suite, as well as interactions with parallel interacting suite systems on separate servers, interacting as one chooses, by remote workflow calls. Combination AI and human user interaction through dual port video displays is also possible in the current implementation, so human users may observe uninterrupted AI output on one screen while interacting via the workflow through another. Finally, in addition to the drag-and-drop objects that enable the speed and capable-user friendliness of the application builder, it also contains the complete capability of the C++ programming language, enabling the coding and compilation of inline inferential logic within the Workbench Job Description. These possibilities which became apparent in a working system, appear to be new actionable qualities of computer-interactive cognitive experience. The results noted earlier were concretely observed to be new action properties of computer utilization in general. It is possible to visualize that the architecture could become a privileged source John Bayless Page 15 3/8/2016 of many new computer use affordances given imaginative and novel integrated COTS components that others will doubtless bring to it. It clearly widens the avenues of both abstract and applied research in computer science and computational cognitive science. John Bayless Page 16 3/8/2016