Cross-platform support middleware

Cross-platform support middleware

A Cross-Platform Support Middleware (CPSM) is a software abstraction layer that guarantees the existence, and correct implementation, of a set of services on top a set of platforms.[1]

Contents

Formal Model

Formally, a CPSM can be represented by the following model:

  • Let S be the set of provided services, and sm the M + 1 elements of that set, with m \in [0,M].
  • Let P be the set of supported platforms, and pn the N elements of that set, with n \in [1,N].
  • The special service s0 denotes the set of trivially cross-platform services provided (e.g. programming language, buffered I/O, etc.).
  • Thus, a CPSM can be defined as:

    A = CPSM(S,P)

    Where the strong condition for the existence of A is that every service in S is available in every platform in P.

The formal model may be extended to account for the abstract and concrete (native) interfaces of the services provided:

  • Let i_m^n be the concrete (native) interface for service sm in platform pn.
  • Let Id(S,P) be the set concrete (native) interfaces (i.e. i_m^n).
  • Let im be the abstract interface for service sm, provided by the CPSM regardless of the underlying platform.
  • Let I(S) be the set abstract interfaces (i.e. im).

Formally, the strong condition for the existence of a CPSM can be expressed as:


	\forall s_m \in I(S), \forall p^n \in P \rightarrow \exists s_m^n.

Trivial CPSM

There are two trivial cases of a CPSM: the single-platform CPSM and the inherently compatible CPSM.

A single-platform CPSM is compatible with one, and only one platform. Formally, | P | = 1, or, equivalently, P = {p1}. In broad terms, an operating system might be considered a single-platform CPSM.

An inherently compatible CPSM is an abstraction layer that only provides services trivially compatible in every compatible platform. Formally, | S | = 1, or, equivalently, S = {s0}.

Non-trivial CPSM

A non-trivial CPSM must verify two conditions:

  • The compatible platform set must contain at least two platforms.
  • The provided services set must contain at least one non-trivial service.

Formally:

  • | P | > 1
  • | S | > 1

Abstraction method

The abstraction method in the CPSM development is the method used to compile the concrete source code for a given platform without compromising the abstract interfaces provided. The most commonly used abstraction methods in CPSM development are: conditional compilation and directory separation of sources.

The first method consists in embedding preprocessor instructions in the source code to conditionally select the source subtree compatible with a given platform.

The second method takes advantage of the filesystem organization to divide the source code in different folders, one for each incompatible platform. Thus delegating the selection problem to the build system.

Some distributions like MSYS and cygwin may help build the cross-platform code in a unix-like environment even on Microsoft Windows. Both distributions provide a decent version of GNU Make that can direct the build process in a cross-platform fashion.

See also

References


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • Mobile enterprise application platform — A mobile enterprise application platform (MEAP) is a comprehensive suite of products and services that enable development of mobile applications.[1] Contents 1 Purpose 2 Rule of three 3 Components and Features …   Wikipedia

  • Simple DirectMedia Layer — SDL logo Original author(s) Sam Lantinga Developer(s) Sam Lantinga Stabl …   Wikipedia

  • Netscape portable runtime — Developer(s) Mozilla Foundation / Mozilla Corporation Stable release 4.8.3 / February 1, 2010; 21 months ago (2010 02 01) Written in C …   Wikipedia

  • List of game engines — Many tools called game engines are available for game designers to code a game quickly and easily without building from the ground up. Contents 1 Free and open source 2 Proprietary 2.1 Commercial 2.2 Freeware …   Wikipedia

  • Physics Abstraction Layer — Developer(s) http://sourceforge.net/projects/pal …   Wikipedia

  • MySQL — Developer(s) MySQL AB (A subsidiary of Oracle) Initial release May 23, 1995 (1995 05 23 …   Wikipedia

  • List of rapid application development tools — Cross Platform Rapid Application Development Tools = * Boa constructor is a cross platform, wxPython based Python RAD IDE. * is a cross platform C/C++ RAD IDE using wxWidgets; the latest developmental builds have a built in form designer wxSmith …   Wikipedia

  • IST-MUSIC — Infobox Software name = MUSIC caption = author = MUSIC consortium developer = released = January 17, 2008 latest release version = 0.1.1 latest release date = July 28, 2008 latest preview version = latest preview date = operating system = Cross… …   Wikipedia

  • Oracle WebLogic Server — Oracle WebLogic Ram Developer(s) Oracle Corporation Stable release 11gR1 / Jan, 2011 Operating system Cross platform Type Application server …   Wikipedia

  • Virtuoso Universal Server — Virtuoso Conductor (Database Administration User Interface) Developer(s) OpenLink Software …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”