EP1907930A1 - Offenes system zum integrieren und verwalten von computergestützten komponenten, die eine spezifische funktionalität einer spezifischen anwendung repräsentieren - Google Patents

Offenes system zum integrieren und verwalten von computergestützten komponenten, die eine spezifische funktionalität einer spezifischen anwendung repräsentieren

Info

Publication number
EP1907930A1
EP1907930A1 EP05795001A EP05795001A EP1907930A1 EP 1907930 A1 EP1907930 A1 EP 1907930A1 EP 05795001 A EP05795001 A EP 05795001A EP 05795001 A EP05795001 A EP 05795001A EP 1907930 A1 EP1907930 A1 EP 1907930A1
Authority
EP
European Patent Office
Prior art keywords
components
computer
component
application
container
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
EP05795001A
Other languages
English (en)
French (fr)
Inventor
Carlos Moreno
Yu Liu
Stéphane BELOT
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sinovia SNC
Original Assignee
Sinovia SNC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=35695562&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=EP1907930(A1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Sinovia SNC filed Critical Sinovia SNC
Publication of EP1907930A1 publication Critical patent/EP1907930A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design

Definitions

  • - Framework Frame, Bearer.
  • - Cluster / Clustering Group, Grouping.
  • the invention relates to an environment, sometimes called "Open Components” open integration and management of distributed computing components within the same machine or between several machines connected to a network, including Ethernet, in particular TCP / IP. It also relates to a method associated with a tool that allows developers and users to understand the principles of component programming and that guides them in the various stages of a project realization.
  • a computer component is an autonomous and executable software entity.
  • the paradigm used in the invention incorporates the main principles of this approach which allows for greater control over the development process and a significant reuse.
  • the invention is based on the fact that a component is an element of a whole and that the goal is to achieve a whole by composition as it can be in a systemic approach.
  • the invention relates to a method complementary to the conventional methods of analysis and design because the component is elementary and relies, as such, on more conventional approaches which aim to synthesize a software entity from a code, therefore of a programming language; it can for example be an object language, itself distributed or not.
  • the invention relies on the identification of roles and interactions between business entities. In the first place, roles define different kinds of entities and lead to the creation, adaptation or reuse of components.
  • the invention is based on a kernel that offers all the basic services required for component management, registration, instantiation and representation.
  • the kernel also provides communication support between components and manages their connections. This reduction of kernel services to a minimal basis greatly facilitates the handling of the framework and naturally defers the responsibility of integrating new services on the components as trades, whether generic or specialized.
  • the invention relates to an open system for integrating and managing computer components representing a specific functionality of a given application.
  • the determined application is intended in particular to ensure the operation, supervision and control of machines connected to a TCP / IP Ethernet type computer network in distributed and heterogeneous industrial installations.
  • the system includes a computer core comprising:
  • an integration protocol common to the components, comprising instantiation and loading means intended to list, select and assign the computer components to the achievement of the functional objectives of the determined application, and
  • Connection means for establishing connections and controlling message flows between the computer components.
  • the system therefore makes it possible to easily build specific applications by incorporating and connecting together heterogeneous computer component technologies.
  • the computer core includes a security service for defining different levels of access to the application that correspond to user rights on the system.
  • the computer core includes means for managing "man-machine" interfaces to support the distribution of the "man-machine" interface elements exported by the components.
  • the system comprises a container
  • the container comprises at least one of the following elements: means for integrating the components into the determined application, means for hosting the "man-machine" interfaces, such as window, menu, toolbar, and status bar,
  • the determined application is intended to ensure the operation, supervision and control of machines connected to a computer network
  • the system comprises means for locating all the machines having a container with active components. , and means to know all the instances of components and their plugs.
  • the system may include means for connections between plugs to be made from any machine.
  • the system includes at least one "man-machine" interface generating a graphical representation of the computer components to allow a user to control the connections and message flows between the computer components.
  • the system comprises specific computer components, dedicated to the realization of specific applications, including computer routing components for translating and routing messages between two computer components, and computer components simulators components for allow partial validation of the specific application.
  • the system may comprise routing computer components with means for defining the interface between the needs expressed explicitly through requests, or implicitly by the notification of information, and for defining the different services offered by a user. set of grouped components.
  • the system can also be such that computer component simulator components include a stimulator with means for writing scripts defining different message sequences for stimulating a particular component.
  • the system comprises, for the construction of applications, means of compositions for interconnecting existing components according to a gluing scheme.
  • the bonding can be direct, the components being connected directly to each other. It can also be of the indirect type using groupings of components.
  • FIG. creation of an application by assembly of components Figure 2 represents the general architecture of a component
  • Figure 3 illustrates the principle of integration of a component
  • Figure 4 represents the overall architecture of the core
  • Figure 5 shows the component integration service
  • Figure 6 illustrates the operation of a component.
  • a computer application is always made up of functional modules that cooperate with one another to achieve one or more more complex and sophisticated functionalities than those realized by each of the participating modules.
  • different configurations of these same modules can give rise to variants of the same application.
  • the technology of the invention includes integrating software components each representing a specific functionality in a unifying environment (the component container) and establishing communication between these components to obtain a global behavior that meets the specification of the component. application.
  • the kernel provides the following services:
  • Figure 1 schematically shows the creation of an application by assembling components. This creation is obtained from the use of a container 1 for integrating components 2 according to a specific protocol by which the components 2 will communicate with each other according to the specifications of a specific application 3.
  • the kernel provides two additional services for HMI security and management (HMI).
  • HMI HMI security and management
  • the security service allows you to define different levels of access to the application that correspond to user rights on the system.
  • the HMI management service supports the distribution of the HMI elements exported by the components within the container application.
  • a component is an autonomous code that interacts with a given environment consisting of the container in which it is instantiated and all other components (local and remote).
  • a component consists of four parts:
  • HMI part window (s), menu (s), toolbar and status bar);
  • the integration part allows the component to integrate into a container application. It also allows the component to insert its HMI into the main interface of the container application. This is a standard mechanism that each component must include.
  • a component has its own HMI for its presentation and interaction with the user (a menu, a toolbar, one or more windows, a status bar). Part of its HMI can be exported to the container.
  • the lawsuit is an internal, behavioral level that characterizes the business processes of the component.
  • the communication part defines an interface between the behavioral level and its environment (in particular the other components).
  • the communication level is itself divided into two layers: a language layer and a media layer.
  • FIG. 2 represents the general architecture of a component comprising a communication level 7 itself comprising a language layer 4 and a media layer 5, as well as a behavioral level 6.
  • the language layer 4 defines the communication logic interface ; it depends strictly on the job. As such it introduces a set of specific words, or even a particular syntax. From a general point of view, the language defines the semantic framework of the different solicitations that are accepted by the component and that trigger its behaviors. Therefore, the invention is not related to any particular language but the positioning of this layer should be designed primarily in accordance with its relationship to the business to ensure that component developments are as independent as possible.
  • the media layer 5 provides the connectivity of the component with one or more other components and the routing of data on these connections.
  • a component can have one or more connection terminals, called "plugs", connectable to each other by bidirectional links.
  • a plug is a connection terminal through which a component can transmit variable-length byte packets. These packets are usually the serialized form of a structured data (a simple type, a structure or a class), a file, and so on.
  • the invention provides in the core a standard and unique container directly usable for instantiating components which are then immediately active. It plays a unifying role to ensure cooperation between components and offers the following services:
  • the integration service is central since it ensures the loading and the initialization of the components, their connection is at the origin of the activation of the other services, in particular the HMI hosting service. Its role is therefore equivalent to that of an application bootstrap which guarantees the search and the installation of the components within the container.
  • the role of the GUI hosting service is to guarantee interactivity between the user and the different components of the graphical environment. Interaction elements (eg toolbar buttons, menus, etc.) are initialized when components are integrated into the environment. For this, this service defines an interface that allows:
  • the definition of a screen, linked to a given application profile, can be realized during the execution of the application (using the mouse) and can be linked to the overall application persistence. Access to this feature, which allows the positioning of graphic components, depends on the rights granted to the user.
  • This window also provides access to a minimum display that provides access to a number of basic features such as selecting a configuration.
  • FIG. 3 which illustrates the principle of integration of a component, the following elements are represented: component 2, interface 2a, process 2b, data of HMI 9, events of HMI 8, container 10.
  • a "browser” allows you to view the different connection terminals (plugs) exported by each component and connect these plugs together.
  • the plug-in browser provides a complete mapping of the project that gives the designer a synthetic view of the application and the various communication links.
  • the application configuration consists of defining the profile of the application. This persistent profile is characterized by the parameterization of the graphic components (positioning and dimensioning) and the parameterization of the connections between the components.
  • the kernel The entire application is composed of a main graphical interface, a container (the kernel) and components loaded by the kernel.
  • the main graphical interface is the welcome window of the entire application in execution. Based on the kernel, it hosts windows, menus, toolbars, and status bars that belong to the integrated kernel and components.
  • the kernel provides the following services:
  • FIG. 4 which represents the global architecture of the kernel, the following elements are represented: components 2, access rights 11, security service 12, persistence of kernel 13, integration service of components 14, the HMI service 15, 1 / HMI of the application 16, the HMI data of the core 17, the HMI data of the components 18, the commands of the core 19, the commands of the components 20.
  • the integration service 14 takes care of the management of the components: their loading, their instantiation, their interconnection and the persistence of their configuration.
  • the HMI 15 service supports the export and maintenance of the GUI of each component in the main graphical interface of the application. It guarantees the routing of events from the GUI of each component to the component itself. This service also manages the graphical and interactive objects of the kernel. Associated events are redistributed to the relevant departments.
  • the security service 12 defines the level of access rights of the current session. This information is taken into account by the HMI service 15 to determine the type of the corresponding interface to use.
  • Kernel 13 maintains a database for its own persistence. Indeed, each service uses the same base to ensure its persistence, and the nucleus plays the role of conductor for the persistence of the whole.
  • the integration service 14 The integration service manages all the operations concerning:
  • Loading, instantiation and component selection operations are performed by the component manager.
  • the operations relating to the interconnection of the components are managed by the communication manager described below.
  • Each manager takes loads its own persistence, and the service itself ensures consistency of persistence as a whole.
  • FIG. 5 which represents the component integration service, the following elements are represented: the management of components 21, the management of connections 22, the list of classes 23, the list of instances 24, the components 2 , the loading and instantiation 25, the selection of instances 26, the plugs 27, the persistence 28, the list of connections 29.
  • the component manager 21 maintains a list of component classes and a list of component instances .
  • the list of classes 23 contains the descriptive information and the locality (location) of the registered components.
  • the list of instances contains the component instances that are running.
  • the persistent form of the class list is called a "component register", any component that must be registered by the manager in the registry before it can be instantiated.
  • the register stores the following information:
  • a class is identified by its name and version. Therefore, components of the same type but different versions are treated as different classes.
  • the manager creates component instances from information obtained from the component registry. Instances are named and their names are unique in the list of instances. In this way, an instance can be identified by name in an application. For each instance stored in the instance list, we maintain a data structure that stores its context (information associated with the instance and exploited by other services).
  • connection manager implements various services that allow the management of the plug-ins defined by each component at the local application level up to the global network level. These services are used by the browser to locate all machines with a container
  • connection manager For each container, the connection manager is then able to know all the component instances and their plugs. Connections between plugs can be done from any machine.
  • the GUI hosting service firstly supports the management and display of graphical and interactive kernel objects in the main interface of the application according to the access right provided by the security service. Interaction events for the various kernel services are redistributed to the recipient.
  • the GUI hosting service creates the menus according to the access rights granted to the current session. These menus are inserted in the main interface of the application.
  • the service is responsible for redistributing the commands of these menus to the various services of the kernel. Since the components are independent software units (eg DLLs in the Windows environment), the command identifiers used by a component can be redundant when multiple components are in the same execution space. A substitution of command identifiers and window identifiers is necessary to distinguish graphical objects and command identifiers in the main interface of the application.
  • a lookup table for windows supports the substitution of the window identifier for each window that a component wants to insert as a child window into the main interface.
  • a lookup table for command identifiers controls the substitution of command identifiers in component menus and toolbars inserted into the main interface. The correspondence between the IDs (identifiers) of the application and the original IDs is kept and verified before the redistribution of the commands to the recipient component so that the latter always uses the original IDs within its code.
  • the SDK "OpenComponents” allows to create its own components. It includes all standard OpenComponents libraries giving access to the various services of the kernel. Wizards corresponding to different patterns of components (components with HMI, threaded components, persistent components, etc.) facilitate the design and guide the programmer in its handling of the kernel.
  • a test consists of a particular scenario of stimulations whose anticipated responses have been anticipated.
  • the comparative analysis of the actual responses of the component makes it possible to check its behavior with respect to external stresses.
  • Messenger is a component that allows the development of components. It is a stimulator in which it is possible to write scripts that define different message sequences to stimulate a particular component. Each script corresponds to a test scenario, the execution of the scenario making it possible to validate or not the behaviors of the component.
  • Direct bonding involves connecting two components directly. This technique has the advantage of not requiring any intermediate treatment but raises the problem of the independence of the components. It assumes that both components use the same language. However, there are no other connections than the connections between components. To handle this problem, the invention introduces the concepts of reactive components and cognitive components.
  • a reactive component is a component with little initiative and very limited knowledge. This type of component is usually controlled by higher level components that are the cognitive components.
  • a cognitive component is a component capable of initiative and endowed with a knowledge that can be evolutionary. These components are usually control entities that centralize a number of services rendered by reactive components. Mediators used in indirect gluing are cognitive-type components.
  • Indirect gluing involves connecting a set of components to a single central component that then serves as a mediator. This technique has many advantages, including a methodological advantage over conventional development processes.
  • an application is any graph whose nodes are component instances and links the connections between these instances.
  • This graph is built directly into the main window which offers by default the functionality of creating and connecting components. It can be saved as a configuration file whose name is usually that of the application.
  • a functional cluster, or cluster is a particular group of components, or functional entities, linked together through a routing component named "Cluster Manager". This component, which knows all the services offered by each functional entity, realizes the interface between the expressed needs, explicitly by requests or implicitly through information notifications, by these entities and the services offered by the others. Each entity connected to the router is an acquaintance of the router.
  • the graph of the application is in star. However, this graph can be increased by interconnecting clusters and then constituting a "snowflack" type architecture. The interconnection of clusters allows an increased management of the application complexity in terms of functional and geographical distribution in a hierarchy whose base consists of elementary components (highly reactive) and whose top requires the implementation of high level components generally. involved in a decision process based on the manipulation of synthetic data.
  • Another advantage of this architecture is that it makes it possible to isolate each of the functional entities and to limit the phenomena of intrusion of the profession of one into the profession of the other (phenomena that generally lead to strong interdependencies and result in by shared code).
  • Maestro allows the construction and development of clusters.
  • the manager of a cluster is called a cluster manager (or router).
  • Maestro makes it possible to define the interface between needs expressed explicitly through requests or implicitly by the notification of information and the various services offered by all the components of the cluster (its acquaintances). This interface is a message router for which the user can define different translators. Maestro makes it possible to define, for each acquaintance, its links with the other acquaintances and, for each link, the translators who interpret and translate the messages.
  • FIG. 6 which represents the operation of the generic Maestro component, the following elements are represented: component A 30, component B 31, connection A4 32, contact Al 34, contact A3 33, connection A2 35, AeI 36, ArI 37 T2 Translator 38.
  • the different arrows represent the following events: Arrow 39: Sending a message from component A to the A4 connection of the router.
  • Arrow 40 Notification of the receipt of a message from an acquaintance.
  • Arrow 41 Routing the message to the related acquaintance (s).
  • Arrow 42 Send the message to the translator.
  • Arrow 44 Recovery of the communication port.
  • Arrow 45 Transmission of the translated message to the component.
  • This relationship between needs (or information) and services expresses a fully defined dynamic at the router level and characterizes an application in a unique way. Apart from the specific bugs of a component, a cluster may have unplanned behavior typically related to poorly defined routing. It may then be necessary to follow the message flows managed by the cluster manager by defining breakpoints. For this Maestro allows to follow in real time the execution of a cluster and the step by step tracking of the different message flows.
  • Component programming is an iterative process which, to be as effective as possible, must also incorporate the concept of partial validation. Thus, even if the components are not all yet realized, the components that have been validated during the unit tests can be partially tested in an interaction context close to the final context.
  • the partial validation of a cluster therefore consists in studying the general behavior of a part of an application, or a subset of its components. However it may be necessary to simulate some messages to allow the triggering of a process that we want to validate. For that a component component simulator "Virtual Components" is proposed to replace a component waiting for integration. This substitution remains partial insofar as the simulator can not implement the real behaviors of the simulated component but makes it possible to respond to certain messages in a mechanical way through a script.
  • OpenComponents An open environment “OpenComponents” is an environment open to most current component technologies. This openness is achieved through an interface adaptation mechanism that allows for the incorporation of different types of component technologies and makes these technologies interoperable with all other components managed by OpenComponents.
  • a “skin” is an adaptation interface that translates the incoming and outgoing messages of a component expressed in the native language of its interface. Skins are used to ensure the interoperability of OpenComponents components with other components from different technologies.
  • OpenComponents can be part of a complete range of control - command products for distributed and heterogeneous installations.
  • the invention makes it possible to implement simple and fast distributed supervision and control modules between hardware agents and software components on networks of different types from the field networks in connection with the terminal equipment (PLCs or I / O). ) to the WAN networks.
  • PLCs terminal equipment
  • I / O terminal equipment

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
EP05795001A 2005-07-26 2005-07-26 Offenes system zum integrieren und verwalten von computergestützten komponenten, die eine spezifische funktionalität einer spezifischen anwendung repräsentieren Withdrawn EP1907930A1 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2005/050620 WO2007012707A1 (fr) 2005-07-26 2005-07-26 Systeme ouvert d'integration et de gestion de composants informatiques representant une fonctionnalite specifique d'une application determinee

Publications (1)

Publication Number Publication Date
EP1907930A1 true EP1907930A1 (de) 2008-04-09

Family

ID=35695562

Family Applications (1)

Application Number Title Priority Date Filing Date
EP05795001A Withdrawn EP1907930A1 (de) 2005-07-26 2005-07-26 Offenes system zum integrieren und verwalten von computergestützten komponenten, die eine spezifische funktionalität einer spezifischen anwendung repräsentieren

Country Status (3)

Country Link
US (1) US20090106378A1 (de)
EP (1) EP1907930A1 (de)
WO (1) WO2007012707A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010099177A2 (en) * 2009-02-24 2010-09-02 Virginia Commonwealth University System and method for constructing an application using distributed functionalities

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5991535A (en) * 1996-07-03 1999-11-23 Sun Microsystems, Inc. Visual composition tool for constructing application programs using distributed objects on a distributed object network
CN1305611B (zh) * 1998-05-15 2010-06-02 特里迪姆公司 利用计算机网络对各种机电系统进行面向对象的控制的系统和方法
US6256780B1 (en) * 1998-09-10 2001-07-03 Microsoft Corp. Method and system for assembling software components
US6658491B1 (en) * 1998-12-04 2003-12-02 Honeywell Inc. System and method for constructing an ole process control compliant data server from a noncompliant user application
AU5907000A (en) * 1999-06-30 2001-01-31 Etec Systems, Inc. Method and apparatus for hierarchical control of continuously operating systems
JP2002229783A (ja) * 2001-01-31 2002-08-16 Toshiba Corp ソフトウェア構築支援システム、その方法およびソフトウェア構築支援プログラム
US7346891B2 (en) * 2002-07-05 2008-03-18 Eka Systems Inc. System and method for automating generation of an automated sensor network
US20050005261A1 (en) * 2003-07-02 2005-01-06 Severin William B. Component integration engine

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See references of WO2007012707A1 *

Also Published As

Publication number Publication date
WO2007012707A1 (fr) 2007-02-01
US20090106378A1 (en) 2009-04-23

Similar Documents

Publication Publication Date Title
Crnkovic Component‐based software engineering—new challenges in software development
Valetto et al. Using process technology to control and coordinate software adaptation
US20040148184A1 (en) System and method to manage the distribution of services software in a distributed network
EP2284698B1 (de) Komposition integrierter Systeme unter Verwendung ereignisbasierter Legacy-Anwendungen
EP2488941A1 (de) Automatisierte entwicklung von unternehmenssoftware
WO2001097026A1 (fr) Systeme informatique modulaire et procede associe
Fabresse et al. Foundations of a simple and unified component-oriented language
Luer et al. Composition environments for deployable software components
Crnkovic et al. Component-based software engineering-new paradigm of software development
EP1907930A1 (de) Offenes system zum integrieren und verwalten von computergestützten komponenten, die eine spezifische funktionalität einer spezifischen anwendung repräsentieren
FR2865557A1 (fr) Systeme ouvert d'integration et de gestion des composants informatiques representant une fonctionnalite specifique d'une application determine
Krause et al. SharePoint 2010 as a development platform
Dragone et al. SoSAA: a framework for integrating components & agents
Monfort et al. Bridging the gap between technical heterogeneity of context-aware platforms: Experimenting a service based connectivity between adaptable android, wcomp and openorb
Spacek Design and Implementation of a Reflective Component-Oriented Programming and Modeling Language
sohail Khan et al. Enhanced IoT Composition Architecture based on DIY Business Process Modeling: CoAP based Prototype
Dai Build a Dashboard Application for NOVs eVolve Automation System
Magnin et al. Agents need to become welcome
Abdullahi Component-based Software development
EP1168170A1 (de) Verfahren zur Informationsverwaltung in Java
Valetto et al. Combining mobile agents and process-based coordination to achieve software adaptation
Spacek et al. Bridging the Gap between Component-based Design and Implementation with a Reflective Programming Language
Ahmad Jazzri Smart Home Simulation/Ahmad Jazzri Jamaludin
Özyurt Enforcing connection-related constraints and enhancements on a component oriented software engineering case tool
WO2004066088A2 (en) System and method for automated code generation using language neutral software code

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20080129

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IS IT LI LT LU LV MC NL PL PT RO SE SI SK TR

17Q First examination report despatched

Effective date: 20080424

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN

18D Application deemed to be withdrawn

Effective date: 20100202