The present invention relates a method and system disclosing how to implement how changes in specifications of compositions of actors can be reflected in a running system.
From the prior art it is known that Telefonaktiebolaget L. M. Ericsson has developed a prototype of a Service Execution Framework called ServiceFrame [1]. The services will be deployed in networks where current Telecommunication and Internet has merged into an open service oriented network. The services are modelled using UML 2.0 concepts for concurrent state machines communicating asynchronously through message passing.
Two patent applications the first PCT/NO2004/000142-disclosing aggregation of non blocking state machines on Enterprise Java Bean Platform and the other PCT/NO2004/000143 disclosing non blocking persistent state machines on Enterprise Java Bean Platform both issued by Telefonaktiebolaget L. M. Ericsson is incorporated herein by reference.
ServiceFrame is an application server in the service network. It provides functionality for communication with users connected through different types of terminals such as phones, PC's or PDA's
ServiceFrame itself provides architectural support for service creation, service deployment and service execution. Services are realized by ServiceFrame applications that are defined by specializing and instantiating framework classes. In addition it has mechanisms that support incremental development and deployment of services.
ServiceFrame is layered on top of ActorFrame and JavaFrame as shown in
ActorFrame uses the well-known metaphor that “actors play roles”. Actors are objects that play different roles. Hence, a service may be defined in terms of collaborating service roles where a service role is the part an actor plays in a service. Models that use the ActorFrame concepts are called ActorFrame models.
Actor is the core concept of ActorFrame. An actor, illustrated in
Communication between an actor and its environment takes place via an Inport and Outports.
The existing service platforms do not provide support for dynamic reconfiguration of executing services without stopping the service(s) and this in turn affects the availability of the services.
Also, the existing protocols in ActorFrame does not support the dynamically deployment and reconfiguration of services implemented as actors. The actors have support for creation and deletion of actors, but this is not done as part of the configuration of the system. It is more as a part of the service it self. So current versions lacks mechanism for specifying the configuration of the actors system, which automatically cause changes of the running system.
In order to configure the structure (assuming that services consist of many components) of running services all influenced components of the services must be updated. This is a complex task due to the dependencies among the components. Hence the services need to be deployed and reconfigured dynamically to meet the demands from the market.
There exist no public available known solutions to this problem.
As to overcome the problems as described above the present invention discloses method for dynamically deployment and reconfiguration of services such as peer to peer type of services using a protocol suite running on a generic distributed middleware platform, such as ActorFrame where said method comprise the steps of:
Further the present invention discloses a corresponding protocol suite for dynamically deployment and reconfiguration of services such as peer to peer type of services running on a generic distributed middleware platform, such as ActorFrame where the protocol suite is adapted to:
the protocol suite is further adapted to dynamically and preferably in real time to reconfigure the affected actors with reconfigurations as follows:
To make the present invention readily understandable reference will be made to the accompanying drawings, further to point out the essence of the present invention the basic concepts will be outlined in the following section
The invention consists of new protocols for ActorFrame that provide solutions for
These additions to the current version of ActorFrame provide the basic solution to the problem of dynamically changing of services deployed on the ServiceFrame execution framework. It may be also adapted to other service platforms following the approach described in this invention.
The invention consists of a set of ActorFrame protocols and state machines used to implement the actor configuration in request. The Actor configuration specifies the structures of actors and the connections among them. In the invention an XML file format is selected for describing the Actor configuration to be deployed.
In this chapter we will first give a brief overview of the generic behaviour of Actors and the usage of the protocols. Further, we will introduce the description format of the Actor configuration files. Eventually we describe the state machine and signal sequence diagrams of the ActorFrame protocols in a detailed manner.
This section contains subsections describing the following matters:
A first section (Actor Protocols) giving an overview of Actor protocols and its usage
A second section (Actor Configuration) giving a description of Actor configuration files
A third section (Messages) disclosing a description of the messages involved in the protocols
A fourth section (Role Creation) disclosing protocols and state machines related to the Actor creation process
A fifth section (Role Update) disclosing protocols and state machines related to the Actor update process
A sixth section (Role Release) disclosing protocols and state machines related to the Actor release process
The seventh section (Role Remove) disclosing protocols and state machines related to the Actor removal process
Actors have protocols for role requests and role releases used during configuration. New roles can be created dynamically and initiated on requests. The intention is that an actor can request another actor to initiate new roles (actors) to do a requested service.
As shown in
The basic feature of the protocol is to allow an actor (requester) to request another actor to play a specific role and to allow the actors to interact to perform a service or a play. The protocol also includes a protocol to release a requested role.
The internal structure of all types of actors in a system is defined by associated actor descriptor files. Actor descriptor files have XML format and contains entries for:
An Actor xml configuration file contains the following elements:
The two parts d:DeltaActor and f:PhiActor are drawn in
This subsection contains all messages involved in the ActorFrame package.
The RoleRequest and RoleCreate protocols constitute the basic interaction patterns between Actors in ActorFrame. They cope with how Actors are created according to initial configuration and during execution.
The communication diagram in
The RoleCreate interaction pattern applies when an actor is created that contains inner parts. An actor may either be created at instantiation time of its parent if it is an initial part of the parent actor, or as a result of a role request from another actor.
Recall that all actor types presented so far in this chapter are subtypes of the generic type Actor. When subtypes such as DeltaActor or GammaActor are defined they will inherit behaviour from Actor. In this subsection the state machines related to the role request and role create interaction patterns will be presented. It is important to bear in mind that any parts involved in the interactions are of Actor type. When looking into the state machines different aspects will be involved dependent of whether the actor is an inquired, requested, initial role, etc. In the sequel it will be explicitly mentioned what view that is presented.
An actor provides support for a dynamic reconfiguration during execution based on actor xml files. New parts (roles) may be added and multiplicities can be changed. Existing ports can be removed, added or reconfigured to connect to other actors. This section describes the protocols and state machines involved in this action.
In order to release connections between actors, role release messages are used. Upon receiving a role release message the sender of the message is removed from the actor's context. This is described in
When a RoleRemove message is received the actor prepares for removal by sending out RoleRelease messages to all its connected roles. Further, it sends RoleRemove messages to all its inner actors. When RolePlayEnded messages are received from all its inner actors it will issue a RolePlayEnded message to its parent actor before it ceases to exist. The process is described in
This invention provides a solution for changing service configuration without stopping execution of services. This invention also simplifies the process of configuring the components of services with high complexity. The invention also supports reconfiguration of services that are deployed on distributed platforms.
Applications and services have usually required off line changes in the implementation, which have caused unwanted downtime of the services. But this invention specifies a solution that allows the administrators of the service execution platforms to specify changes in the configuration, deploy new services and remove services without changing the actual implementation of the deployed services.
This invention introduces a new protocol for a run time configuration of deployed actors. Complex service components consist of several actors. The structures of the service components are described using configuration files. This makes it possible to dynamically change the structure of applications such as changing versions of components, alter between which components to use, to change number of instances while the services or components are executing. Change in the configuration file is detected and this invention automatically updates the running services although they are running distributed.
Service reconfiguration has not been possible in prior systems without changing the code of services and redeploying the services again. This has resulted in less availability of the services and longer lead-time for implementation of changes.
Actor An actor is an active class with an own machine state machine and it may contain inner parts. Actors may be requested for playing a specific role.
ActorAddress The address of an actor, which consists of an actor identification represented as a string and an actor type that identifies the class type.
Role A role is an actor that is played by another actor.
RoleType The type identification of a role.
RoleId A name that identifies a specific role of a RoleType
ActorType Similar as RoleType, but denotes an actor
ActorId A name that identifies a specific role of an actorType
Inquired actor An actor that is requested to play a specific role
Requested actor The actor that the inquired actor is requested to play
Requestor actor The actor that makes an request to another actor (inquired actor) to play a specific role.
Actor context The context information of an actor that is specific for each actor instance as references to parent, requested and requestored actors and children or parts instances.
ActorFrame protocol The protocol actors use to invoke other actors and to control the lifecycle of actors.
Role Request A specific message used by the ActorFrame protocol to make requests for role to be played by other actors.
Part Similar to the UML2.0 concept part that represents instances of actors that are part of a containing actor.
Port Similar to the port concept in UML used to connect parts together.
Number | Date | Country | Kind |
---|---|---|---|
20043557 | Aug 2004 | NO | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/NO05/00134 | 4/21/2005 | WO | 00 | 11/6/2007 |