1) What is the meaning of SoftEcoSDK?
The company name is Software System Infrastructure, LLC. The company sells products within a product line called ServiceFrame Infrastructure. A user adds software within a software environment that runs within a one or multiple computer software system. A Software Development Kit or sdk creates the software environment for user written software. The name SoftEcoSDK is an abbreviation for "software ecosystem - Software Development Kit".
The SoftEcoSDK consists of a set of software classes that interface between user written software and the underlying software system. The ServiceFrame Infrastructure product line consists of software classes combined into components that work together to create a software system from network elements, computers, a computer OS, third party software, and customer software. Some of the important characteristics of a software system created through use of softecosdk and the product line include:
- data representation by a data class with in memory Meta data that allows the infrastructure to convert data content to and from XML or a machine independent serial format.
- message transmission via an infrastructure middleware that controls what information flows between known program instances.
- client to server interaction on a recoverable session routed through an infrastructure service manager.
The term "sf" is also used as a qualifier for the names of various software pieces within the ServiceFrame Infrastructure.
2) What software should use the SoftEcoSDK?
Any software where reliability and security are more important than the resource consumption needed to achieve these goals.
3) What does software look like when based on the SoftEcoSDK?
Software is organized into servers that run within the SoftEcoSDK environment. A server can offer a service which can be remotely accessed via a recoverable client to server session. A server can create a client to server session to obtain a service from a remote server.
The information needed to recover a session is given to an infrastructure service manager along with messages exchanged between client and server. A server instance can backup another server instance by recovering a client to server session from the session checkpoint information after a failure.
Note that most software continues to exist as an OS, library of subroutines, applications, etc. that run on one computer. Only a top layer of software is designed and implemented as a server that performs work for a client and / or uses a service from a remote server.
A service is a set of directly callable methods or API written in the software language used by a client. A service translates between the API and messages exchanged with a remote server. A service and server use the ServiceFrame Infrastructure to define a data class(es) that holds the content of data exchanged between servers. Metadata is initialized within a data class that directs the infrastructure how to convert data content to and from a serial or XML format. The infrastructure converts a message between a data class instance and serial format before and after transmission. The infrastructure middleware transmits a message in serial format.
The ServiceFrame Infrastructure bridges across the islands of functionality created by different combinations of computer hardware, OS, and software language. A server is written in one software language running on one type of OS and computer hardware while a service to a client is the same language, using the same OS and computer as a client.
4) Why use the infrastructure for a new or existing software project that is intended for use on one computer?
Almost any new software project will benefit from dividing functionality into a few carefully chosen components. A component, running as a separate process, is beyond the reach of most software bugs that occur within a different component. The infrastructure minimizes development effort needed to coordinate work between components running as separate processes.
An existing software project can be ported to use the infrastructure but the cost of a port needs to be mitigated by the achieved benefits. Separating functionality into different client and server processes on one computer improves both reliability and security. Using multiple computers achieves even better reliability and security. Note that one or multiple computers is a user configuration option supported by the infrastructure.
The definition of a single computer will likely change over time. Processor chip design has already developed a multiple processor single computer. A possible next step is one chip that appears as multiple independent and cooperating computers that further improves overall performance and cyber security.
5) What is middleware?
Middleware is software that makes it easier to communicate between two programs by providing services beyond those available from an operating system. Examples of middleware include RPC (Remote Procedure Call), CORBA, SOAP, etc.
6) What are the performance characteristics under load?
This is important to measure, document, and consider. However, it is of secondary importance. Existing point to point techniques should be used for streaming or file transfer of large amounts of data. The infrastructure can be used to coordinate the work between two end points. The primary purpose of the infrastructure is to provide reliability and security features that are not easily obtained with existing point to point techniques.
The ServiceFrame Infrastructure enables a software system to be composed of dozens to thousands of computers. The aggregate work performed by such a system makes the resources consumed by the infrastructure a reasonable cost versus the benefits of reliability, security, and aggregate performance.