Figure 1 Hyperworx Platform Technical Disclosure [ Figure 1 ] © 2003 Encapsule Systems, Inc....
-
Upload
arnold-dennis -
Category
Documents
-
view
217 -
download
4
Transcript of Figure 1 Hyperworx Platform Technical Disclosure [ Figure 1 ] © 2003 Encapsule Systems, Inc....
Figure 1
Hyperworx Platform Technical Disclosure [ Figure 1 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Conceptual Diagram
Hyperworx embodies a useful process and a methodology for packaging software intellectual property (System Inputs) in a form that can be subsequently used by the non-obvious Hyperworx machinery (Mechanism) to automate the manufacturing of software applications (System Output) in a manner that is a useful improvement of current methods of software application composition.
Operating System Platform (e.g. Microsoft Windows, Linux, Mac OSX…)
Hardware Platform (e.g. Intel, AMD, or IBM… CPU-based server or workstation)
System InputsUseful process + methodology
for preparing inputs for the machinery
System OutputsUseful improvement of current
software application composition methodologies
MechanismNon-obvious machinery for
manufacturing software applications
XML-encoded Hyperworx CSDL-format specification files
Platform/OS-native binary-format Hyperworx plug-in database (Hyperworx HyperPack modules)
Platform/OS-native binary-format Hyperworx software application
Platform/OS-native custom software application runtime memory image
Figure 2
Hyperworx Platform Technical Disclosure [ Figure 2 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx System Inputs Overview
Useful process + methodology for preparing inputs for the machinery
Hyperworx Component Software Description Language (CSDL) XML schema-compliant documents
XML-encoded Portable Model Library (PML) documents(s)
XML-encoded Portable Application Specification (PAS) document(s)
XML-encoded Platform Binding Map (PBM) document(s)
XML-encoded Semantic Binding Map (SBM) documents(s)
XML-encoded Persistent Application Data (PAD) document(s)
Platform/OS-specific ANSI C++ compiler installation
Hyperworx HyperPack SDK (ANSI C++ library)
Platform/OS-native Hyperworx HyperPack binary plug-in module
Software algorithms Data structures
Hyperworx binary HyperPack plug-in module creation methodology
Figure 3
Hyperworx Platform Technical Disclosure [ Figure 3 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Mechanism Overview
For more in-depth information, consult the large multi-page printouts.
Non-obvious machinery for manufacturing software applications
Hyperworx Platform packaged and deployed as a single, integrated binary software application
Hyperworx Graphical User Interface View System
Hyperworx Core (“Protein” Library)
Virtual Machine Assembly Subsystem
Virtual Machine Analysis Subsystem
Virtual Machine Loader Subsystem
Virtual Machine Runtime Dispatch Subsystem
Plug-In Package Database Subsystem
OS Platform Services Subsystem
Plug-In Package Development Kit
Model Librarian Subsystem
Application Specification Subsystem
XML Services Subsystem
User Interface View Controller Subsystem
Hyperworx Core State Machine Subsystem
Figure 4
Hyperworx Platform Technical Disclosure [ Figure 4 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx System Output Overview
Useful improvement of current software application composition methodologies
Figure 5
Hyperworx Platform Technical Disclosure [ Figure 5 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Deployed As a Software Development Tool
Hardware Platform (e.g. Intel®-based workstation or server)
Operating System Platform (e.g. Windows®, Linux)
Hyperworx deployed as a single, integrated binary software application
Full Hyperworx Graphical User Interface
Hyperworx Core (“Protein” Library)
HyperPack Plug-In Package Development Kit
ANSI Standard C++ Compiler
HyperPack Plug-In PackagesHyperPack Plug-In Packages
HyperPack Plug-In PackagesHyperPack Plug-In Packages
Custom Algorithms and Logic Transforms
CSDL-Encoded Model and Specification FilesCSDL-Encoded Model and Specification Files
CSDL-Encoded Model and Specification FilesCSDL-Encoded Model and Specification Files
Hyperworx deployed as a stand-alone server
Hyperworx Core (“Protein” Library)
Figure 6
Hyperworx Platform Technical Disclosure [ Figure 6 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Deployed As a Software IP Syndication Platform
Hardware Platform (e.g. Intel®-based workstation or server)
Operating System Platform (e.g. Windows®, Linux)
Commoditized Hyperworx System Input
HyperPack binary plug-in packages
HyperPack binary plug-in packages
HyperPack binary plug-in packages
CSDL-format software model kits
CSDL-format software model kits
CSDL-format software model kits
Hyperworx deployed as a single, integrated binary software application
Reduced Feature (Simplified) Hyperworx Graphical User Interface
Hyperworx Core (“Protein” Library)
Figure 7
Hyperworx Platform Technical Disclosure [ Figure 7 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Deployed As a Generic Application Server
Hardware Platform (e.g. Intel®-based workstation or server)
Operating System Platform (e.g. Windows®, Linux)
Hyperworx Core “Protein” Library Linked Into Generic Application Server Binary
Hyperworx Core (“Protein” Library)
Network Transport Subsystem
HyperPack binary plug-in packages
HyperPack binary plug-in packages
HyperPack binary plug-in packages
Library of installed HyperPack Plug-In Packages
XML-encoded service request (including the specification of the application to service the
request)
Request results returned in XML-format
LAN/WAN/Internet Transaction
Figure 8
Hyperworx Platform Technical Disclosure [ Figure 8 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx’ Circuit Metaphor :: Example Hardware System
All data can be thought of as signals. The hardware device shown above is a signal processing system that performs some logical processing on a set of data input signals in order to produce some set of data output signals. Generally speaking, the specific transformation of data input signals to data output signals in a hardware-based signal processing system is a function of the specific hardware components and the manner in which they are interconnected.
Platform Data Input / Output
User-Accessible Data Input / Output
Private Data Input / Output
Configuration Option
Fixed-Function Logic Device
Clock Signal Source
Socket Mechanism
Variable-Function Logic Device
An Example Hardware-Based Signal Processing System
Figure 9
Hyperworx Platform Technical Disclosure [ Figure 9 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx’ Circuit Metaphor :: Changing the Labels
For the purposes of discussing a software application’s architecture and composition, it is useful to draw analogies between hardware-based signal processing systems and software-based signal processing systems. This is valid because at a high level of abstraction hardware and software-based signal processing systems perform identically: both perform some logical processing on a set of input signals to produce a set of output signals.
Input / Output to the Operating System Services
Software Application User Interface
Input / Output to Other Software Applications
Software Application Build / Deploy Options
A Fixed-Function Software Algorithm Packaged as a Re-Usable Component
Asynchronous Data Source
Polymorphic Software Subsystem Interface Specification
Customizable Software Algorithm Packaged as a Re-Usable Component
A Relabeled Hardware-Based Signal Processing System
Figure 10
Hyperworx Platform Technical Disclosure [ Figure 10 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx’ Circuit Metaphor :: Mathematical Graph Models
In electrical engineering, digital hardware circuits are typically modeled as mathematical graphs in which the vertices represent discrete logic transforms and the edges represent interconnection wires. Similarly, software applications can be modeled using mathematical graphs in which the vertices represent software components and the edges represent interconnection protocols between the software components.
Software Application
SoftwareComponent
SoftwareComponent
SoftwareComponent
SoftwareComponent
SoftwareComponent
SoftwareComponent
SoftwareComponent
SoftwareComponent
SoftwareComponent
SoftwareComponent
SoftwareComponent
Figure 11
Hyperworx Platform Technical Disclosure [ Figure 11 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Binary Plug-In Architecture
Binary Plug-In Package
Plug-In Entity FactoryIntrospection Interface
Binary Type Handler Plug-In
Introspection Interface
Design Engineer-Supplied Data Structure
Type HandlerType Handler
Type HandlerType Handler
Type Handler
Binary Filter Plug-In
Design Engineer-Supplied Algorithm
Data In
pu
ts
Data
Ou
tpu
ts
Runtime InterfaceIntrospection InterfaceFilterFilter
FilterFilter
Filter
Binary Plug-In PackageBinary Plug-In Package
Binary Plug-In PackageBinary Plug-In Package
Binary Plug-In PackageBinary Plug-In Package
Hyperworx Core
Plug-In Package Database Subsystem
Virtual Machine Loader Subsystem
Figure 12
Hyperworx Platform Technical Disclosure [ Figure 12 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Binary Type and Pin Handler Plug-Ins
Pin Handler
Instantiation Interface
Runtime Interface
Multi-Context Table of Type Handler Data Structures
UUID Type Handler
Friendly Name String
Description String
UUID Pin Handler
Introspection Interface
Type Handler
UUID Type Handler
UUID Handler Revision
Handler Revision
Friendly Name String
Description String
Author String
Copyright String
License String
Introspection Interface
Data Structure
Figure 13
Hyperworx Platform Technical Disclosure [ Figure 13 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Binary Filter Plug-Ins
Filter
UUID Filter
UUID Filter Revision
Filter Revision
Friendly Name String
Description String
Author String
Copyright String
License String
Introspection Interface
Binary Pin Map
Runtime Interface
Design Engineer-Supplied Algorithm
Binary Pin Map
Pin Handler Pin Handler Pin Handler Pin Handler …Pin Handler
Design-Engineer Supplied Algorithm
Figure 14
Hyperworx Platform Technical Disclosure [ Figure 14 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
HYP :: Hyperworx Binary Plug-In Package
Binary Plug-In Package
UUID Package
UUID Package Revis.
Package Revision
Friendly Name String
Description String
Author String
Copyright String
License String
Introspection Interface
Plug-In Entity Factory
FilterFilter
FilterFilter
Filter
Type HandlerType Handler
Type HandlerType Handler
Type HandlerPin Handler
Pin HandlerPin Handler
Pin HandlerPin Handler
Figure 15
Hyperworx Platform Technical Disclosure [ Figure 15 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PBM :: Hyperworx Platform Binding Map
Binary Type Handler Plug-In Alias Map
UUID Type Handler
UUID Handler Revision
UUID Type Handler Alias
UUID Type Handler Alias
UUID Handler Revision
UUID Type HandlerUUID Type Handler Alias
Binary Filter Plug-In Alias Map
UUID Filter AliasUUID Filter
UUID Filter Revision
UUID Filter
UUID Filter Revision UUID Filter Alias
UUID Filter Alias
Binary Type Handler Plug-In Alias Map
UUID Filter Pin AliasUUID Filter Pin
UUID Filter Pin Alias UUID Filter Pin
Platform Binding Map
Binary Type Handler Plug-In Alias Map
Binary Filter Plug-In Alias Map
Binary Filter Plug-In Pin Alias Map
UUID Binding Map
UUID Binding Map Revision
Binding Map Revision
Friendly Name String
Description String
Author String
Copyright String
License String
Internal Data StructuresXML Encoding
Figure 16
Hyperworx Platform Technical Disclosure [ Figure 16 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PBM :: Hyperworx Platform Binding Map XML Skeleton
Platform Binding Map
Binary Type Handler Plug-In Alias Map
Binary Filter Plug-In Alias Map
Binary Filter Plug-In Pin Alias Map
UUID Binding Map
UUID Binding Map Revision
Binding Map Revision
Friendly Name String
Description String
Author String
Copyright String
License String
<?xml version=“1.0”><platform_binding_map> <!-- begin header entities --> <uuid>CB21EAE9-147C-4e69-9FC3-9E95885FAE60</uuid> <uuid_revision>0805FB33-7008-4188-AB32-66A5D80DBAB7</uuid_revision> <revision_major>2</revision_major> <revision_minor>11</revision_minor> <friendly_name>Sample Platform Binding Map XML Skeleton File</friendly_name> <description>This file shows the basic form of an PBM XML document</description> <author>Encapsule Systems, Inc.</author> <copyright>Map copyright notice inserted here</copyright> <license>Map license terms inserted here</license> <!-- end header entities --> <!-- begin platform binding map --> <type_alias_map> <type_alias> <uuid_type>456B764E-3F7B-413f-861B-876DA7D98FD9</uuid_type> <uuid_type_revision>69393907-BE24-4fe6-A171-41816986060F</uuid_type_revision> <uuid_type_alias>1C418F14-7647-4917-B0D7-26D88CA03ACE</uuid_type_alias> </type_alias> <!-- and so on… --> </type_alias_map> <filter_alias_map> <filter_alias> <uuid_filter>D5E450A3-0C91-4065-9428-56F65EA070FD</uuid_filter> <uuid_filter_revision>3F413DCB-4212-45ae-992D-BCA246E38242</filter_revision> <uuid_filter_alias>38B4CB33-1314-4477-8DC4-B9746BC59F49</filter_alias> </filter_alias> <!-- and so on… --> </filter_alias_map> <pin_alias_map> <!-- same general format as above… --> </pin_alias_map> <!-- end platform binding map --></platform_binding_map>
Figure 17
Hyperworx Platform Technical Disclosure [ Figure 17 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Hyperworx Portable Model Library
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Header Entities
UUID Model Library
UUID Model Library Revision
Model Library Revision
Friendly Name String
Description String
Author String
Copyright String
License String
Visualization Primitive Manifest
Polygon Descriptors
Type Descriptor Manifest Entity
Type Descriptors
Processor Descriptor Manifest
Processor Descriptors
Socket Descriptor Manifest
Socket Descriptors
Module Descriptor Manifest
Module Descriptors
Bus Descriptor Manifest
Bus Descriptors
Figure 18
Hyperworx Platform Technical Disclosure [ Figure 18 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Portable Model Library XML Skeleton
<?xml version=“1.0”><portable_model_library>
<!-- begin header entities --><uuid>CB21EAE9-147C-4e69-9FC3-9E95885FAE60</uuid><uuid_revision>0805FB33-7008-4188-AB32-66A5D80DBAB7</uuid_revision><revision_major>2</revision_major><revision_minor>11</revision_minor><friendly_name>Sample Portable Model Library XML Skeleton File</friendly_name><description>This file shows the basic form of an XPML document</description><author>Encapsule Systems, Inc.</author><copyright>Library copyright notice inserted here</copyright><license>Library license terms inserted here</license><!-- end header entities -->
<!-- begin library data --><visualization_primitives> … </visualization_primitives><type_manifest> … </type_manifest><processor_manifest> … </processor_manifest><socket_manifest> … </socket_manifest><module_manifest> … </module_manifest><bus_manifest> … </bus_manifest><!-- end library data -->
</portable_model_library>
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Figure 19
Hyperworx Platform Technical Disclosure [ Figure 19 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Visualization Primitives Entity
<visualization_primitives>
<!-- currently this mechanism only supports 2-dimensional polygonal shapes. we plan to extend this mechanism to support the specification of 3-dimensional volumes, and 2D scaleable bitmap images to support advanced visualization options in the Hyperworx user interface -->
<!-- two-dimensional shape definitions --> <polygon> <uuid>3CB57247-1DE0-4a14-85B0-64C8D06D7F06</uuid> <friendly_name>Square</friendly_name> <!-- (0,0) = upper left, (999999,999999) = lower right --> <vertices> <vertex><x>0</x><y>0</y></vertex> <vertex><x>999999</x><y>0</y></vertex> <vertex><x>999999</x><y>999999</y></vertex> <vertex><x>0</x><y>999999</y></vertex> <vertex><x>0</x><y>0</y></vertex> </vertices> </polygon> <!-- and so on… --> </polygon></visualization_primitives>
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Figure 20
Hyperworx Platform Technical Disclosure [ Figure 20 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Type Descriptor Entity
Binary Type Handler Plug-In
UUID Type Handler
UUID Handler Revision
Platform Binding Map
Binary Type Handler Plug-In Alias Map
UUID Type Handler
UUID Handler Revision
UUID Type Handler Alias
UUID Type Handler Alias
UUID Handler Revision
UUID Type HandlerUUID Type Handler Alias
<type_manifest> <type> <friendly_name>Acme Inc. Sales Order Data</friendly_name> <uuid>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid> <uuid_type_alias>1C418F14-7647-4917-B0D7-26D88CA03ACE</uuid_type_alias></type> <!-- and so on… --></type_manifest>
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Figure 21
Hyperworx Platform Technical Disclosure [ Figure 21 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Pins and Pin Descriptor Entities
Source and Sink Pins
Sink Pin
data flow
Source Pin
data flow
All pins are associated with a specific data type
Pin Connections
Type A Source Type B Sink
data flow
Source pin drives data to sink pin(s)
Type A Source Type A Sink
Pins must be associated with the same data type
A Source pin can drive an arbitrary number of compatible sink pins
<!-- several example source and sink pin descriptors --><!-- pin descriptors always appear nested in entities that will be introduced shortly -->
<pin_manifest>
<!-- standalone pins (attached to module or socket entity) --> <pin_source> <friendly_name>Example Type A Source Pin</friendly_name> <!-- UUID used to reference this pin within the context of this XPML document --> <uuid>258D872C-416A-4ddc-B30E-7CEA24A98BF1</uuid> <!-- UUID of a specific type descriptor --> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> <pin_source>
<pin_sink> <friendly_name>Example Type A Sink Pin</friendly_name> <uuid>9F0BD98F-0B00-4124-82D9-4195A7CE7C4C</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> </pin_sink>
<!-- pin attached to a processor entity --> <pin_source> <friendly_name>Example Type A Filter Source Pin</friendly_name> <uuid>BA5FDCB3-1575-4315-A7ED-9C967284A605</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> <uuid_pin_alias>7FBC49EB-D2DC-45b6-B9EE-88718A09FD82</uuid_pin_alias> </pin_source>
</pin_manifest>
Figure 22
Hyperworx Platform Technical Disclosure [ Figure 22 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
<processor_manifest> <processor> <friendly_name>Example Processor Descriptor</friendly_name> <description>Insert some descriptive text here</description> <uuid>E9030299-ED74-4bd8-A1E9-0FC0305A5518</uuid> <pin_manifest> <!-- exposed sink pins --> <pin_sink> <friendly_name>Example Type A Sink Pin</friendly_name> <uuid>E633695A-D319-4bca-B304-C7EC2C66D093</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> <uuid_pin_alias>579F1398-EBC3-4d51-AF7A-B2DA35EF1542</uuid_pin_alias> </pin_sink> <!-- and so on for all exposed sink pins --> <!-- unexposed, constant value sink pins --> <pin_sink> <friendly_name>Contant Value Type A Sink Pin</friendly_name> <uuid>B74C5041-0F6D-4de4-9D9E-6EC49B117436</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> <uuid_pin_alias>69BDFD02-9911-48af-8750-B5D13F8FCE84</uuid_pin_alias> <pin_sink_data></pin_sink_data> </pin_sink> <!-- and so on for all unexposed, constant sink pins --> <!-- exposed source pins --> <pin_source> <friendly_name>Example Type A Source Pin</friendly_name> <uuid>F6AA52E3-DACF-47ae-8A3C-C64E45D63D05</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> <uuid_pin_alias>7FBC49EB-D2DC-45b6-B9EE-88718A09FD82</uuid_pin_alias> </pin_source> <!-- and so on for all exposed source pins --> </pin_manifest> </processor> <!-- and so on for each binary filter… --></processor_manifest>
PML :: Processor Descriptor Entity
Processor Descriptor
Platform Binding Map
Binary Filter Plug-In
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Figure 23
Hyperworx Platform Technical Disclosure [ Figure 23 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Socket Descriptor Entity
Socket
Outer context
Outer context
Inner context
<socket_manifest>
<socket> <friendly_name>Example Socket Descriptor</friendly_name> <uuid>81300591-9EA1-4e70-8392-8796742FE9E5</uuid> <socket_visualization> <!-- UUID of a polygon shape to use for UI visualization --> <uuid_polygon>3CB57247-1DE0-4a14-85B0-64C8D06D7F06</uuid_polygon> </socket_visualization>
<pin_manifest> <!-- pins declared with respect to socket’s inner context --> <pin_sink> <friendly_name>Example Type A Sink Pin</friendly_name> <uuid>24A62E61-23E8-48b6-BA77-B17491932DBA</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> </pin_sink> <!-- and so on for all sink pins… --> <pin_source> <friendly_name>Example Type A Source Pin</friendly_name> <uuid>CEB6C7C9-1720-432f-943C-8D06DB6CE461</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> </pin_source> <!-- and so on for all source pins… --> </pin_manifest>
</socket> <!-- and so on for all socket descriptors… -->
</socket_manifest>
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Figure 24
Hyperworx Platform Technical Disclosure [ Figure 24 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Module Descriptor Entity
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Modules comprise:
• A set of zero or more outer context pins• A set of zero or more inner context processors• A set of zero or more inner context sockets• A set of inner context pin connections (depicted as black lines in the figure)
Module
Processor
Processor
Processor
Socket
Socket
Processor
Socket
Inner context Outer contextOuter context
Figure 25
Hyperworx Platform Technical Disclosure [ Figure 25 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Module Descriptor Entity XML Skeleton
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
<module_manifest> <module> <friendly_name>Example Module Descriptor</friendly_name> <description>Insert some description of the module here</description> <uuid>78F758E2-C426-489e-96C6-13FA2051B0CB</uuid>
<!-- bind this module to a specific shape and color --> <module_visualization> … </module_visualization>
<!-- declare outer context pins --> <pin_manifest> … </pin_manifest>
<!-– declare inner context subprocessors --> <subprocessor_manifest> … </subprocessor_manifest>
<!-- declare inner context subsockets --> <subsocket_manifest> … </subsocket_manifest>
<!-- declare inner context intramodule pin connections --> <pin_connection_manifest> … </pin_connection_manifest>
</module> <!-- and so on for all module descriptors -->
</module_manifest>
Figure 26
Hyperworx Platform Technical Disclosure [ Figure 26 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Module Descriptor Visualization
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
<module_manifest> <module> <friendly_name>Example Module Descriptor</friendly_name> <description>Insert some description of the module here</description> <uuid>78F758E2-C426-489e-96C6-13FA2051B0CB</uuid>
<!-- bind this module to a specific shape and color --> <module_visualization>
<!-- we plan to extend this general mechanism to allow 2D icons to be filled with scaleable bitmaps (as opposed to single color), and to allow modules to be represented using 3D volumes and textures. These extensions of the existing mechanism should be claimed as they represent the basis for an entirely new type of of user interface that allows the user to manipulate objects in 3D space in order to build a software specification -->
<!-- UUID of a polygonal shape to use the this module’s 2D user interface icon --> <uuid_polygon>3CB57247-1DE0-4a14-85B0-64C8D06D7F06</uuid_polygon> <!-- a square --> <!-- assign a color to fill this module’s 2D user interface icon with --> <color_rgb_hex>0xFF0000</color_rgb_hex> <!-- red -->
</module_visualization>
<!-- declare outer context pins --> <pin_manifest> … </pin_manifest> <!-– declare inner context subprocessors --> <subprocessor_manifest> … </subprocessor_manifest> <!-- declare inner context subsockets --> <subsocket_manifest> … </subsocket_manifest> <!-- declare inner context intramodule pin connections --> <pin_connection_manifest> … </pin_connection_manifest>
</module> <!-- and so on for all module descriptors -->
</module_manifest>
Module as it will be visualized in the user interface (assumes no subsocket declarations)
Figure 27
Hyperworx Platform Technical Disclosure [ Figure 27 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML:: Module Descriptor Pin Manifest Entity
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
<module_manifest> <module> <friendly_name>Example Module Descriptor</friendly_name> <description>Insert some description of the module here</description> <uuid>78F758E2-C426-489e-96C6-13FA2051B0CB</uuid>
<!-- bind this module to a specific shape and color --> <module_visualization> … </module_visualization>
<!-- declare outer context pins --> <pin_manifest> <!–- pins declared with respect to the module’s outer context --> <pin_sink> <friendly_name>Example Type A Sink Pin</friendly_name> <uuid>C42D8E1C-7AA7-4605-B01F-C22357233F0F</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> </pin_sink> <!-- and so on for all outer context sink pins --> <pin_source> <friendly_name>Example Type A Source Pin</friendly_name> <uuid>200D00EF-CE29-49f9-958C-C888DF44FBE2</uuid> <uuid_type>F9090C61-A8BD-4e96-97F8-A86FC1D924B9</uuid_type> </pin_source> <!-- and so on for all outer context source pins --> </pin_manifest>
<!-– declare inner context subprocessors --> <subprocessor_manifest> … </subprocessor_manifest> <!-- declare inner context subsockets --> <subsocket_manifest> … </subsocket_manifest> <!-- declare inner context intramodule pin connections --> <pin_connection_manifest> … </pin_connection_manifest>
</module> <!-- and so on for all module descriptors -->
</module_manifest>
Module
Outer context sink pins
Outer context source pins
Figure 28
Hyperworx Platform Technical Disclosure [ Figure 28 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML:: Module Descriptor Subprocessor Manifest Entity
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
<module_manifest> <module> <friendly_name>Example Module Descriptor</friendly_name> <description>Insert some description of the module here</description> <uuid>78F758E2-C426-489e-96C6-13FA2051B0CB</uuid>
<!-- bind this module to a specific shape and color --> <module_visualization> … </module_visualization>
<!-- declare outer context pins --> <pin_manifest> … </pin_manifest>
<!-– declare inner context subprocessors --> <subprocessor_manifest> <subprocessor> <!-- UUID of a specific processor descriptor --> <uuid>E9030299-ED74-4bd8-A1E9-0FC0305A5518</uuid> <!-- UUID assigned to this specific instance of the processor identified above. This provides a mechanism for differentiating between multiple processors declared in the module’s inner context that may have the the same UUID --> <uuid_instance>56E3090D-3BCF-4a58-9034-AA1AEA9B2CE5</uuid_instance> </subprocessor> <!-- and so on for each processor declared in the module’s inner context --> </subprocessor_manifest>
<!-- declare inner context subsockets --> <subsocket_manifest> … </subsocket_manifest> <!-- declare inner context intramodule pin connections --> <pin_connection_manifest> … </pin_connection_manifest>
</module> <!-- and so on for all module descriptors -->
</module_manifest>
Module
ProcessorProcessor
ProcessorProcessor
Inner context
Figure 29
Hyperworx Platform Technical Disclosure [ Figure 29 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML:: Module Descriptor Subsocket Manifest Entity
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Module
SocketSocket
SocketSocket
Inner context
<module_manifest> <module> <friendly_name>Example Module Descriptor</friendly_name> <description>Insert some description of the module here</description> <uuid>78F758E2-C426-489e-96C6-13FA2051B0CB</uuid> <!-- bind this module to a specific shape and color --> <module_visualization> … </module_visualization> <!-- declare outer context pins --> <pin_manifest> … </pin_manifest>
<!-– declare inner context subprocessors --> <subprocessor_manifest> … </subprocessor_manifest>
<!-- declare inner context subsockets --> <subsocket_manifest> <subsocket> <!-- UUID of specific socket descriptor --> <uuid>81300591-9EA1-4e70-8392-8796742FE9E5</uuid> <!-- UUID assigned to this specific socket instance --> <uuid_instance>981A5683-BBA7-4679-A60D-7EAF9CC91618</uuid_instance> <!-- metrics visualizing socket within the context of this module --> <subsocket_visualization> <polygon_extent>500000</polygon_extent> <polygon_origin><x>250000</x><y>250000</y></polygon_origin> </subsocket_visualization> </subsocket> <!-- and so on for each socket declared in the module’s inner context --> </subsocket_manifest>
<!-- declare inner context intramodule pin connections --> <pin_connection_manifest> … </pin_connection_manifest>
</module> <!-- and so on for all module descriptors -->
</module_manifest>
Figure 30
Hyperworx Platform Technical Disclosure [ Figure 30 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML:: Module Descriptor Pin Connection Manifest
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
<module_manifest> <module> <friendly_name>Example Module Descriptor</friendly_name> <description>Insert some description of the module here</description> <uuid>78F758E2-C426-489e-96C6-13FA2051B0CB</uuid> <module_visualization> … </module_visualization> <pin_manifest> … </pin_manifest> <subprocessor_manifest> … </subprocessor_manifest> <subsocket_manifest> … </subsocket_manifest>
<!-- declare inner context intramodule pin connections --> <pin_connection_manifest> <!-- a set of individual pin connections --> <pin_connection> <!-- data source --> <pin_source> <!-- here we declare a module sink pin as the source --> <!-- UUID of the module’s outer context sink pin --> <uuid>C42D8E1C-7AA7-4605-B01F-C22357233F0F</uuid> <!-- context-specific UUID (NULL = the module itself) --> <uuid_instance>00000000-0000-0000-000000000000</uuid_instance> </pin_source> <!-- data sink --> <pin_sink> <!-- here we declare a socket source pin as the sink --> <!-- UUID of the socket’s source pin --> <uuid>CEB6C7C9-1720-432f-943C-8D06DB6CE461</uuid> <!-- UUID of the specific socket we’re connecting to --> <uuid_instance>981A5683-BBA7-4679-A60D-7EAF9CC91618</uuid_instance> </pin_sink> <pin_connection> <!-- and so on for each intramodule (inner context) pin-to-pin connection --> </pin_connection_manifest>
</module> <!-- and so on for all module descriptors -->
</module_manifest>
Figure 31
Hyperworx Platform Technical Disclosure [ Figure 31 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Module Descriptor Intramodule Pin Connection Rules
DATA SOURCE (TAIL)LEGAL DATA SINK (HEAD)
CONNECTIONSEXPLANATION
Module Sink Pin (data flowing into module from outer context)
Module Source Pin
Processor Sink Pin
Socket Source Pin
Module input drives module output directly
Module input drives processor input
Module input drives socket output
Module Source Pin (data flowing out of module from inner context) – INVALID DATA SOURCE
NO LEGAL CONNECTIONModule output can’t be assigned as the source of an internal connection
Processor Sink Pin (data flowing into processor from outer context) – INVALID DATA SOURCE
NO LEGAL CONNECTIONProcessor input can’t be assigned as the source of an internal connection
Processor Source Pin (data flowing out of processor from inner context)
Module Source Pin
Processor Sink Pin
Socket Source Pin
Processor output drives module output
Processor output drives another processor’s input
Processor output drives socket output
Socket Sink Pin (data flowing out of socket from inner context)
Module Source Pin
Processor Sink Pin
Socket Source Pin
Socket input drives module output
Socket input drives processor input
Socket input drives another socket’s output
Socket Source Pin (data flowing into socket from outer context) – INVALID DATA SOURCE
NO LEGAL CONNECTIONSocket output can’t be assigned as the source of an internal connection
Figure 32
Hyperworx Platform Technical Disclosure [ Figure 32 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PML :: Bus Connection Manifest Entity
Portable Model Library
Header Entities
Type Descriptor Manifest
Processor Descriptor Manifest
Socket Descriptor Manifest
Module Descriptor Manifest
Bus Descriptor Manifest
Visualization Primitive Manifest
Outer context
Socket
Outer context
Module
<!-- declare socket / module compatibility and insertion semantics --><bus_connection_manifest>
<bus_connection>
<friendly_name>Example Socket / Module Bus Descriptor</friendly_name> <!-- UUID assigned to this specific bus descriptor --> <uuid>B870ED5E-66CD-411d-BEBB-D4697BFABEA9</uuid> <!-- UUID of the socket descriptor --> <uuid_socket>81300591-9EA1-4e70-8392-8796742FE9E5</uuid_socket> <!-- UUID of a module that is compatible (can be inserted) into this socket --> <uuid_module>78F758E2-C426-489e-96C6-13FA2051B0CB</uuid_module>
<!-- insertion connection semantics --> <pin_connection_manifest> <!-- pin connections as a set of ordered source pin, sink pin pairs --> <pin_connection> <pin_source> <!-- UUID of the data source pin --> <!-- in this example this is a socket source pin --> <uuid>CEB6C7C9-1720-432f-943C-8D06DB6CE461</uuid> </pin_source> <pin_sink> <!-- UUID of the data sink pin --> <!-- in this example this is a module sink pin --> <uuid>C42D8E1C-7AA7-4605-B01F-C22357233F0F</uuid> </pin_sink> </pin_connection> <!-- and so on for each pin connection --> </pin_connection_manifest>
</bus_connection> <!-- and so on for each pair socket / module compatibility pair -->
</bus_connection_manifest>
Inner context
Figure 33
Hyperworx Platform Technical Disclosure [ Figure 33 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
SBM :: Hyperworx Semantic Binding Map
Semantic Binding Map
PML Module Alias Map
PML Socket Alias Map
UUID Binding Map
UUID Binding Map Revision
Binding Map Revision
Friendly Name String
Description String
Author String
Copyright String
License String
XML Encoding
PML Socket Alias Map
UUID Socket AliasUUID Socket
UUID Socket Alias UUID Socket
PML Module Alias Map
UUID Module
UUID Module Alias UUID Module
UUID Module Alias
UUID Module Subsocket Instance Alias Set
PML Module Subsocket Instance Alias Map
UUID Module Subsocket Instance Alias
UUID Module Subsocket Instance
UUID Module Subsocket Instance Alias
UUID Module Subsocket Instance
Internal Data Structures
Figure 34
Hyperworx Platform Technical Disclosure [ Figure 34 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
SBM :: Semantic Binding Map XML Skeleton
<?xml version=“1.0”><semantic_binding_map>
<!-- begin header entities --> <uuid>0CCCE44D-2F1D-42c9-AB08-8586074FB5F1</uuid> <uuid_revision>6D66A172-8059-4420-B9BA-7D65AB90777B</uuid_revision> <revision_major>1</revision_major> <revision_minor>8</revision_minor> <friendly_name>Sample Semantic Binding Map XML Skeleton File</friendly_name> <description>This file shows the basic form of an SBM XML document</description> <author>Encapsule Systems, Inc.</author> <copyright>Map copyright notice inserted here</copyright> <license>Map license terms inserted here</license> <!-- end header entities -->
<!-- begin semantic binding map data --> <module_alias_map> … </module_alias_map> <socket_alias_map> … </socket_alias_map> <!-- end semantic binding map data -->
</semantic_binding_map>
Semantic Binding Map
PML Module Alias Map
PML Socket Alias Map
Header Entities
Figure 35
Hyperworx Platform Technical Disclosure [ Figure 35 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
SBM :: Module Alias Map Entity
<?xml version=“1.0”><semantic_binding_map>
<!-- header entities -->
<!-- begin semantic binding map data -->
<module_alias_map>
<module_alias> <!-- UUID of the module from the Portable Model Library --> <uuid>78F758E2-C426-489e-96C6-13FA2051B0CB</uuid> <!-- alias UUID for this module --> <uuid_alias>28549287-B4B2-4cb7-B341-E642579F4ED9</uuid_alias>
<subsocket_instance_set> <!– UUID instance of module’s inner context socket (subsocket) --> <uuid_instance>981A5683-BBA7-4679-A60D-7EAF9CC91618</uuid_instance> <!-- alias UUID assigned to this subsocket --> <uuid_instance_alias>1BA111F6-AB75-497d-A615-FA435A771852</uuid_instance_alias> <subsocket_instance_set> <!-- and so on for each subsocket declared in the module’s inner context -->
<module_alias> <!-- and so on for each module in the Portable Model Library -->
</module_alias_map>
<socket_alias_map> … </socket_alias_map> <!-- end semantic binding map data -->
</semantic_binding_map>
Semantic Binding Map
PML Module Alias Map
PML Socket Alias Map
Header Entities
Figure 36
Hyperworx Platform Technical Disclosure [ Figure 36 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
SBM :: Module Subsocket Alias Map Entity
<?xml version=“1.0”><semantic_binding_map>
<!-- header entities -->
<!-- begin semantic binding map data --> <module_alias_map> … </module_alias_map>
<socket_alias_map>
<socket_alias> <uuid>81300591-9EA1-4e70-8392-8796742FE9E5</uuid> <uuid_alias>60BE31E2-60BC-4a09-B9EA-D172194B289F</uuid_alias> </socket_alias> <!-- and so on for each socket in the Portable Model Library -->
</socket_alias_map>
<!-- end semantic binding map data -->
</semantic_binding_map>
Semantic Binding Map
PML Module Alias Map
PML Socket Alias Map
Header Entities
Figure 37
Hyperworx Platform Technical Disclosure [ Figure 37 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PAS :: Hyperworx Portable Application Specification
Figure 38
Hyperworx Platform Technical Disclosure [ Figure 38 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PAS :: Header Entities
Figure 39
Hyperworx Platform Technical Disclosure [ Figure 39 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PAS :: Module Manifest Entity
Figure 40
Hyperworx Platform Technical Disclosure [ Figure 40 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
PPD :: Hyperworx Persistent Pin Data
Figure 41
Hyperworx Platform Technical Disclosure [ Figure 41 ] • © 2003 Encapsule Systems, Inc. • Revised: 04/19/23
Hyperworx Core (“Protein” Library) High-Level Block Diagram
Hyperworx Platform packaged and deployed as a single, integrated binary software application
Hyperworx Graphical User Interface View System
Hyperworx Core (“Protein” Library)
Virtual Machine Assembly Subsystem
Virtual Machine Analysis Subsystem
Virtual Machine Loader Subsystem
Virtual Machine Runtime Dispatch Subsystem
Plug-In Package Database Subsystem
OS Platform Services Subsystem
Plug-In Package Development Kit
Model Librarian Subsystem
Application Specification Subsystem
XML Services Subsystem
User Interface View Controller Subsystem
Hyperworx Core State Machine Subsystem