WO2013008254A2 - A new agent based approach for creating dynamic information systems - Google Patents

A new agent based approach for creating dynamic information systems Download PDF

Info

Publication number
WO2013008254A2
WO2013008254A2 PCT/IN2012/000490 IN2012000490W WO2013008254A2 WO 2013008254 A2 WO2013008254 A2 WO 2013008254A2 IN 2012000490 W IN2012000490 W IN 2012000490W WO 2013008254 A2 WO2013008254 A2 WO 2013008254A2
Authority
WO
WIPO (PCT)
Prior art keywords
interaction
signal
space
agent
operator
Prior art date
Application number
PCT/IN2012/000490
Other languages
French (fr)
Other versions
WO2013008254A3 (en
WO2013008254A4 (en
Inventor
Antony ALAPPATT
Original Assignee
Masterkube Software Solutions And Services Pvt Ltd
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
Application filed by Masterkube Software Solutions And Services Pvt Ltd filed Critical Masterkube Software Solutions And Services Pvt Ltd
Publication of WO2013008254A2 publication Critical patent/WO2013008254A2/en
Publication of WO2013008254A3 publication Critical patent/WO2013008254A3/en
Publication of WO2013008254A4 publication Critical patent/WO2013008254A4/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management

Definitions

  • the invention relates to apparatus for dynamically creating information systems, more particularly billing such apparatus based on the usage instead of purchasing the apparatus as a whole.
  • the invention avoids the need to rewrite the program when information systems change.
  • All existing computer architectures are based on traditional Von-Neumann architectures, i.e. all machines are considered as a state machine.
  • the states are manipulated using instructions. These instructions operate on states.
  • An instruction takes an input (i.e. its states in a location) and it is transformed by the instruction and is placed in a location.
  • These locations could be either microprocessor onboard registers, high speed random access memory or in a slower secondary storage i.e Flash memory, database, etc.
  • programs are written by programmers to manipulate this state and establish control so that information is manipulated as per the requirement of the business (in the case of business applications), i.e the application is wired for a need. When the need changes these transformation programs have to be rewritten which is effort intensive and expensive.
  • Increasingly most applications are process driven, i.e there is minimum transformation of information, but it is all about communication between different portions of code in the same address space or a different address space across the network. This invention leverages on this insight.
  • This invention approaches the problem differently. It was addressed by going into the basics of computing (Lambda Calculus), and realizing that the algorithm can also be explained in more fundamental way.
  • the mathematics process calculi says that algorithms can also be expressed as interaction. Rather than transformation being fundamental, the theory says the fundamental is interaction (i.e communication).
  • This invention is based on the premise, that all computing is based on a more fundamental premise of atomic/indivisible interaction.
  • This invention gives interaction processor architecture platform and the current algorithmic processor is a subset of this interaction processor platform.
  • the invention relates to a new interaction processor architecture or apparatus to generate dynamic information system and to reduce overall cost of the information systems.
  • the objective of the invention is to model and execute any information systems, where in system is specified as a configuration of signal flows.
  • system is specified as a configuration of signal flows.
  • Another objective of the invention is to create the dynamic information systems model by configuration of signal flows using basic process calculi fundamental, so as to minimize the programming effort when these information systems is created and changed.
  • the system is accomplished with configuration of process space names.
  • Each of these names can be conceived by the business and can easily create these configurations; thereby the system avoids the need to rewrite the program when information systems change.
  • the system does not include any centralized program for transformations.
  • the search is accomplished by bringing up all interactions which have the search value.
  • the another aspect of the invention is that all information resources is considered as a name and the integration agent can directly bind to this name significantly reducing effort to do integration.
  • the apparatus can be billed based on the number of interactions take place i.e pay per usage policy, thereby reducing total cost of the information systems ownership.
  • FIG. (1 ) Illustrates the logical architecture of the apparatus
  • FIG. (2) Illustrates the example of sample information system
  • the present invention is a embodied device to model and execute any information systems, where in the process or system is specified as a configuration of signal flows, and the process / system advances when complementary signals interact or react with each other, this reaction of complementary signal changing the overall state of the process which leads to new signal flow configuration.
  • a signal is a name. It could be a name like the atomic value or it could be a name which can carry zero or more atomic values.
  • the signal can contain atomic values like Date, Time,
  • custom data types can also be defined. These custom data types can be defined in the element.
  • resource URL says which is the URL where the data is stored.
  • validation URL is called with the string to validate the string.
  • the validation URL will be called to validate the input and resource URL would be called to store the data.
  • a signal supplying this information is the positive signal.
  • the signal which receives this information is the negative signal.
  • This negative and positive property of the signal is given by two operators. These two operators are collectively called as signal operators.
  • the two signal operators are TELL and ASK Operator.
  • TELL operator is a signal operator. It represents the capacity of the signal to deliver signal. When this operator is encountered the signal instance is created by contacting the name server. Then this signal instance is published to the interaction space, ready to be consumed by complementary signal of the same instance.
  • ASK operator is a signal operator. It represents the capacity of the signal to accept input. When this signal operator is encountered then the signal instance is created by the name server. Then this signal instance is published to the interaction space ready to be consumed by complementary signal of the same instance.
  • the system or process is defined as a configuration of Signals.
  • the initial configuration is created by the operators given below. They are called configuration operators and its operation is as follows. Sequence operators that can take one or more configuration operators or Signal operators. The sequence operator can be used to setup a set of signals as occurring one after the other. I.e. if a sequence has two signals then the second signal in the sequence operator is published to interaction space or ready for interaction, only after the first signal is interacted. The presence of configuration operator in sequence operator presents the configuration to be completed before the process can move to the next signal. If one interaction happens in the configuration then the next sequence can activate.
  • Compose operator publishes all the actions into the interaction space. It gives the possibility of operating parallel.
  • the compose operator can take one or more configuration operators or Signal Operators.
  • the configuration operator in a compose operator creates more configurations and the signal operator publish signals into interaction space or ready for Interaction.
  • Choice operator can be used to provide a set of choices in the interaction space and on selecting one choice the other choice options go away.
  • the choice operator consists of a set of choice actions of either TELL or ASK and a set of actions to be continued when one of the choice is selected.
  • the continuation actions could be a set of further configuration operators, TELL, ASK operators or Agent.
  • Replicate operator can be used to provide a way to create a new instance of process.
  • a Replication operator can consist of either an agent, set of configuration operators or signal operators as instance process.
  • the replicate operator has a triggering signaling operator. This triggering operator should be a signal operator.
  • This triggering operator should be a signal operator.
  • Complementary Names encounter each other when they are published with signal operators in the interaction space, when two complementary names interact then the process space gets updated with the new interaction and the new set of potential interactions are published, i.e when interaction happens, the process moves to the next configuration which gives the current process state.
  • the process needs to be chunked.
  • the agent is a way to do it.
  • the agent can take inputs like names and it can trigger a process.
  • the agent definition consists of the names inputted and the initial configuration of the process.
  • the process specified in the agent is instantiated and it merges with the process that instantiated it.
  • the name is also injected into the process data space.
  • Each agent is given an avatar. This avatar is one of the elements in the process instance. This avatar appears in the Human interface rather than the process id's. This could be either an image or a text.
  • Integration to other systems is also accomplished with the same concept.
  • the external resources are all named and accessed through the integration agent as names or signals.
  • An integration agent provides integration to the surround systems. This integration is achieved by exposing all computer resources as name spaces, and the platform interacts through the signal operators to integrate directly with all computer resources.
  • the current plan is to expose all namespaces are URI namespaces.
  • the integration agent has to define the process name, the URL where the resource is located and the different actions and elements.
  • the integration agent uses these information to fetch the elements from the source system on an ASK signal and also puts the elements in the target system on an TELL signal.
  • the arithmetic operations and logic operations are executed by Arithmetic and Logical Agent.
  • the Arithmetic Agent is triggered by sending it the arithmetic expression to be computed.
  • the right hand side of the arithmetic is executed to raise the left hand side of the expression. If the right hand side expects values then it will be communicated by putting it into the interaction space (as an ASK signal operator) and waiting for the answer.
  • expression is computed and the right hand value is expressed and put in to the interaction space (as an TELL signal operator).
  • the Logical Agent is triggered by send it the logical expression to be evaluated. When any of these logical expressions are given, then the right hand side of the logical expression is executed to raise the left hand side of the logical expression. If the right hand side expects values then it will be communicated by putting it into the interaction space (as an ASK signal operator) and waiting for the answer. On receiving the binding, the expression is evaluated and the decision is expressed with name in the left hand side of logical expression and is put into the interaction space (as an TELL signal operator).
  • the Timer Agent is used to trigger signals, when a particular time arrives.
  • the Timer Agent takes time and a name as input and it enqueues the name using TELL operator to the interaction space when the time mentioned approaches.
  • FIG. 1 Shows the logical architecture of the system or platform model.
  • the process engine directly executes the process source code.
  • This process engine is a process calculi execution engine.
  • Process Engine consists of these six pieces. Each piece has its own specific functionality
  • Process Space Each time a process is loaded the process space is loaded.
  • the process space contains the process shape of each instance of a process, as every process instance
  • the process instance is differentiated by names. These names are created by calling the name server to get the new name. All the names are created at the time of process creation by interacting with the name server. After the initial process name creation, the rest of the action names are created with respect to the process instantiation name, which was received from the name server.
  • the Process space consults the name server
  • This process space could be either accommodating on a central server to represent centralized processing, or it could be residing on distributed devices to represent distributed processing on a device swarm.
  • the Name Server's functionality is to generate new universally unique names.
  • the name server knows the current state of a name and hence it is possible to generate new 00 names.
  • the name server has to be interrogated with the domain, the process name and the action that the name has to be generated before a name can be generated.
  • the generated name is what differentiates one process instance from another. Each action can have different namespaces.
  • the name space generation is the responsibility of the Name Server.
  • the name server is also responsible for binding. I.e When the reaction engine, needs to check for 205 equivalence of names for binding, it needs to consult the Name Server.
  • the Interaction Space keeps track of all signals which are raised. When the TELL or ASK signal is encountered in a process space, that name is published in the interaction space. Interrogating this space gives all signals/actions that are ready to be interacted with.
  • the Reaction engine polls this space to ensure if there are any names that exist in both the ASK 210 and TELL side of the interaction space. On encountering the names, the reaction engine removes the names from this space.
  • the Ul agent also interrogates this space with a user workspace process name, to get all the pending names assigned to a user.
  • the Reaction Engine So in the interaction space, the signals that are ready for reacting are kept. It is the reaction engine which polls this space to ensure reactions are done.
  • the reaction engine ⁇ 15 reads signals from the interaction space and consults the name server to get equivalence names. On matching of names, the process space is advanced to the next set of interactions and the new signals which are ready are moved from the process space and the names that are equivalent are removed the interaction space. When a reaction is completed, the meter is notified of the consumption of one interaction.
  • the Reaction engine ensures that the reaction is 220 atomic, i.e the reading of equivalent names, checking for equivalence, updating the process space with the new configuration and removing of the names in interaction space is atomic. I.e. it is either done together or not done at all.
  • the apparatus generates revenue on use. If the names that match are successful, then an interaction happens and the process moves forward. As the process 225 moving forward, has value to the business, the meter is incremented when reactions happen.
  • Algorithm Complex This algorithm complex is triggered by send it the expression to be expanded. This could be either arithmetic or logical expression. When any of these expressions are given, then the right hand side of the arithmetic or logical expression is executed to raise the
  • the local operating system This is accomplished with the standard pipe mechanism of standard input, standard output and standard error.
  • the standard input is published as a ASK signal into the interaction space
  • the output is published as a TELL signal into the interaction space
  • the standard error is published as a TELL signal into the interaction space. This way it can communicate with the local operating system calls also.
  • User Interface act as an interface between the user and the coordination system.
  • the Ul allows the user to create, modify or view the actions and agents.
  • the User Interface shows all the actions in the interaction space which can be interacted with.
  • the process instance is created when the process is created using a Replicate or Server Startup. If the process instance is created when the replicate operators is applied then a name 245 is created for this instance of the process by interrogating the name server.
  • the process instance consists of two spaces one is the process space (101) and the other is the process data space.
  • the process space keeps track of the state or configuration of process and links to the process data space.
  • the process space consists of set of actions. The process unfolds depending on how these interactions are likely to happen. So it is these 250 intermediate configuration changes of process kept in process space that define the interactions.
  • Process Data space keeps data private to a process. Only actions that are specified in the process can deliver the data to the outside world.
  • elementary data like Date, Time, Number and String can be stored. Besides this a name itself can be stored to *M>5 be published later. Once a name is taken from the process space and is delivered by ASK or TELL operator then it has to be removed from the Process Data Space.
  • This process moves forward due to interactions. So this system can depict breaks in process supply and demand. If there is true smooth flow of information or process flow, then no reactions would be pending. But pending interactions are breaks in the flow.
  • This process metric 260 can be provided directly without any reports etc. What actions need to be monitored, can be specified when the action is defined.
  • a dynamic system behavior is exhibited when the behavior of the system changes depending on the input.
  • This system allows this dynamic system behavior by passing names which can be interacted with by the receiving process to select varied behavior.
  • passage of names or 265 actions provides a way of dynamic information systems. For example, this is to establish a workflow.
  • a user is represented in the system as a workspace process, by passing names from other processes through actions, it is possible to show those behaviours on the Ul from the user workspace process.
  • the process space depicts interactions in the future. Predictive metrics can be outputted by reading Process space, showing interactions that are still pending.
  • the future Process road map of the process instance can be shown by reading the process space, (but not shown in the diagram)
  • the accrual agent produces a functionality of accrual.
  • Many accruals can be tied together by names to create an accounting process.
  • the accrual agent is triggered by account and when it triggers it takes these names i.e opening balance, Credit, Debit and Closing Balance. These names are passed in the Account name. After the agent is triggered, it creates the actions or signals are presented in the figure 2. It accepts these names in the account name trigger and it opens the 3 names for interactions.
  • the internal mechanism Internally, it consists of 7 agents. These agents are composed using compose operator. Each agent has signal operators which are organized by configuration operators.
  • the Accrual Agent, code is as considered below:
  • AccrualAgent COMPOSE [ DebitAgent, CreditAgent, CloseAgent, OpenAgent, ArithmeticAgent]
  • DebitAgent CHOICE [ASK(Stop).Nil; ASK(Debit) COMPOSE
  • the Debit agent as mentioned above, is in a choice configuration operator, either the Stop or the Debit choice is provided. If the complementary Stop signal is sensed, then this agent stops. If it senses the complementary Debit signal, it executes publishes the possibility of delivering the Damt signal (received through the Debit Signal) ⁇ and after this the same DebitAgent repeats. But parallely, the arithmetic agent is instantitated through the arithmetic expression to compute Dbal. When the accrual agent is instantiated the Debit agent is instantiated presenting the two Stop and Debit signal.
  • the Credit agent as mentioned above, is in a choice configuration operator, either the Stop or the Credit choice is provided. If the complementary Stop signal is sensed, then this agent stops. 305 If it senses the complementary Credit signal, it executes publishes the possibility of delivering the Camt signal(received through the Credit Signal) and after this the same CreditAgent repeats. But parallel, the arithmetic agent is instantiated through the arithmetic expression to compute Cbal When the accrual agent is instantiated the Credit agent is instantiated presenting the two Stop and Credit signal.
  • the Close Agent as mentioned above provides the functionality of stopping debit and credit agent (by telling the stop signal) and tells the arithmetic agent to create the closing balance.
  • OpenAgent COMPOSE [ TELL(Cbal); TELL(Dbal); TELL(Openingbalance) ]
  • the open Agent as mentioned above provides the functionality of raising the Cbal, Dbal and the opening balance so it can be bound when the arithmetic operators are activated later. This agent is activated, as it composed when the accrual agent is instantiated. The agent goes through the following agent behaviours
  • agent When the agent is instantiated because of the trigger through the account name, it instantiates the agent to create a process and hence it gets the process name from the name server and creates a process space for that process Id.
  • Each agent gives the following different names into 325 the interaction space of all the names that are ready for reaction. The different names are stop, Debit, Credit and Close.
  • the Reaction engine binds this Dbal and Damt complementary signal (which were published earlier in the open agent i.e. first configuration) to solve the right hand side of the expression and publishes Dbal (right hand part of expression) into the interaction space.
  • the Credit Name binding works along the same lines. Configuration - Close Name binding
  • the reaction engine When a complementary name for close is encountered in the interaction space, the reaction engine shows the next signal, i.e it raises the Stop signal.
  • the Credit and Debit agent which are based on a CHOICE configuration operator, encounters the stop signal raised and proceeds to raise the next signal which is "NIL", i.e. no operation. So both the CreditAgent and DebitAgent dies. Then it publishes the Arithmetic Expression, which triggers the arithmetic agent to raise the closing signal and the whole agent completes.
  • the tag ⁇ process> defines the beginning and end of a process.
  • a process should contain either Sequence operators or signal operators. In the case, it sequences two signal operators in one Configuration operator ⁇ SEQUENCE>. So when 395 this process is loaded, first it will publish the first signal operator, in this case it is ⁇ TELL> and will publish the supply of the signal LR. Only on this LR binding or reacting, the next signal would be published for interaction/reaction.
  • the user has provisions for logging into the application, and once get logged in, the index page or
  • the index page displays various options of the billing system including receivable dashboard, user, medical referral, case, patient, payment information. All options are process oriented and interact with each other.
  • the system is user friendly and includes site map for tracking purposes. Search option provides a complete search of the data as it is obtained by bringing up all process interactions. The user mentioned here but
  • the user is charged based on the usage i.e. pay per usage method using interaction meter.
  • a process once it is created can be easily simulated with the simulator provided, this will significantly improve process deployment as there is no extensive testing with test cases required. Since it is process based, the testing has to be simulated rather than testing for 425 boundaries etc.
  • all information resources is considered as a name and the integration agent can directly bind to this name significantly reducing effort to do integration.
  • the search is accomplished by providing a search functionality by providing the search services for each entity in the system. But with this invention, the search is done by bringing up all process interactions that have the search space in the process data 3 ⁇ 435 space. Once the interactions are displayed then it can be viewed by the user in the Ul so he can begin by interacting with each interaction thus brought up.

Abstract

The invention relates to a new agent based approach for creating dynamic information system or a business process model that helps in reducing the cost of application. This method is accomplished by configuration of signal flows and interactions. In this method, billing is calculated based on the number of interactions taking place between one or more agents involved in the business process i.e pay per usage policy. This agent based approach minimizes the programming effort and also avoids the need to rewrite the program when the business process changes

Description

A NEW AGENT BASED APPROACH FOR CREATING DYNAMIC INFORMATION SYSTEMS FIELD OF INVENTION:
The invention relates to apparatus for dynamically creating information systems, more particularly billing such apparatus based on the usage instead of purchasing the apparatus as a whole. The invention avoids the need to rewrite the program when information systems change.
BACKGROUND OF THE INVENTION:
All existing computer architectures are based on traditional Von-Neumann architectures, i.e. all machines are considered as a state machine. The states are manipulated using instructions. These instructions operate on states. An instruction takes an input (i.e. its states in a location) and it is transformed by the instruction and is placed in a location. These locations could be either microprocessor onboard registers, high speed random access memory or in a slower secondary storage i.e Flash memory, database, etc. So in effect programs are written by programmers to manipulate this state and establish control so that information is manipulated as per the requirement of the business (in the case of business applications), i.e the application is wired for a need. When the need changes these transformation programs have to be rewritten which is effort intensive and expensive. Increasingly most applications are process driven, i.e there is minimum transformation of information, but it is all about communication between different portions of code in the same address space or a different address space across the network. This invention leverages on this insight.
This cost reduction has been attempted before, and it was addressed by attempting to improve productivity of the programmer i.e. better languages (domain specific, high level languages, object oriented languages, etc) where devised so that when one line of code written by the programmer would generate many lines of executable algorithms leading to improved productivity. But this attempt was still algorithmic, so the problem of complexity still existed.
For example, U.S. Application. No. 20090157468 June 18, 2009, issued entitled "Interaction- based method for the implementation of coordination systems," by Alappatt, describes a method for the designing, development and implementation of coordination system using an agent- based method. This system is used to express a business process using minimal programming effort. The billing is performed based on demand using an interaction meter. However, during any function changes or sequencing of the business function changes, then the system approaches an agent based approach and thereby enhancement of the business process is achieved. Another system is disclosed by Robin Milner in his book titled "Communicating and Mobile Systems: the Pi-Calculus" describing a calculus analysing properties of concurrent communicating processes.
This invention approaches the problem differently. It was addressed by going into the basics of computing (Lambda Calculus), and realizing that the algorithm can also be explained in more fundamental way. The mathematics process calculi, says that algorithms can also be expressed as interaction. Rather than transformation being fundamental, the theory says the fundamental is interaction (i.e communication). This invention is based on the premise, that all computing is based on a more fundamental premise of atomic/indivisible interaction. This invention gives interaction processor architecture platform and the current algorithmic processor is a subset of this interaction processor platform.
SUMMARY OF THE INVENTION
The invention relates to a new interaction processor architecture or apparatus to generate dynamic information system and to reduce overall cost of the information systems.
The objective of the invention is to model and execute any information systems, where in system is specified as a configuration of signal flows. When complementary signals interact or react with each other, this reaction of complementary signal will change the overall state of the process and lead to new signal flow configuration.
Another objective of the invention is to create the dynamic information systems model by configuration of signal flows using basic process calculi fundamental, so as to minimize the programming effort when these information systems is created and changed.
Advantageously, the system is accomplished with configuration of process space names. Each of these names can be conceived by the business and can easily create these configurations; thereby the system avoids the need to rewrite the program when information systems change. The system does not include any centralized program for transformations. In this system, the search is accomplished by bringing up all interactions which have the search value.
The another aspect of the invention is that all information resources is considered as a name and the integration agent can directly bind to this name significantly reducing effort to do integration.
In this invention the apparatus can be billed based on the number of interactions take place i.e pay per usage policy, thereby reducing total cost of the information systems ownership. BRIEF DESCRIPTION OF THE DRAWINGS
FIG. (1 ) Illustrates the logical architecture of the apparatus
FIG. (2) Illustrates the example of sample information system
DETAILED DESCRIPTION OF THE INVENTION:
The present invention is a embodied device to model and execute any information systems, where in the process or system is specified as a configuration of signal flows, and the process / system advances when complementary signals interact or react with each other, this reaction of complementary signal changing the overall state of the process which leads to new signal flow configuration.
A signal is a name. It could be a name like the atomic value or it could be a name which can carry zero or more atomic values. The signal can contain atomic values like Date, Time,
Number and String. Besides, these atomic values it could also contain another signal name.
Besides these types, custom data types can also be defined. These custom data types can be defined in the element. To define a custom datatype, two items should be provided. They are resource URL, and validation URL. The resource URL, says which is the URL where the data is stored. The validation URL, is called with the string to validate the string. During the TELL or
ASK, the validation URL will be called to validate the input and resource URL would be called to store the data.
A signal supplying this information is the positive signal. The signal which receives this information is the negative signal. This negative and positive property of the signal is given by two operators. These two operators are collectively called as signal operators. The two signal operators are TELL and ASK Operator.
TELL operator is a signal operator. It represents the capacity of the signal to deliver signal. When this operator is encountered the signal instance is created by contacting the name server. Then this signal instance is published to the interaction space, ready to be consumed by complementary signal of the same instance.
ASK operator is a signal operator. It represents the capacity of the signal to accept input. When this signal operator is encountered then the signal instance is created by the name server. Then this signal instance is published to the interaction space ready to be consumed by complementary signal of the same instance.
The system or process is defined as a configuration of Signals. The initial configuration is created by the operators given below. They are called configuration operators and its operation is as follows. Sequence operators that can take one or more configuration operators or Signal operators. The sequence operator can be used to setup a set of signals as occurring one after the other. I.e. if a sequence has two signals then the second signal in the sequence operator is published to interaction space or ready for interaction, only after the first signal is interacted. The presence of configuration operator in sequence operator presents the configuration to be completed before the process can move to the next signal. If one interaction happens in the configuration then the next sequence can activate.
Compose operator publishes all the actions into the interaction space. It gives the possibility of operating parallel. The compose operator can take one or more configuration operators or Signal Operators. The configuration operator in a compose operator creates more configurations and the signal operator publish signals into interaction space or ready for Interaction.
Choice operator can be used to provide a set of choices in the interaction space and on selecting one choice the other choice options go away. The choice operator consists of a set of choice actions of either TELL or ASK and a set of actions to be continued when one of the choice is selected. The continuation actions could be a set of further configuration operators, TELL, ASK operators or Agent.
Replicate operator can be used to provide a way to create a new instance of process. A Replication operator can consist of either an agent, set of configuration operators or signal operators as instance process. The replicate operator has a triggering signaling operator. This triggering operator should be a signal operator. When an instance is created using the replication operator it creates a new instance of names by interrogating the name server. If the replicate operator is in an already instantiated process, then the names are generated by the process space itself.
Information system advances when reactions happen. Reactions happen when complimentary signals interact. The configuration of signal operators set up the potential of the flow of a process. This names i.e signals and how they come together is setup in the beginning set of configuration. The flow of control or signal flow is established by placing the appropriate names using signal operators, so that the configuration changes when the different names interact.
Complementary Names encounter each other when they are published with signal operators in the interaction space, when two complementary names interact then the process space gets updated with the new interaction and the new set of potential interactions are published, i.e when interaction happens, the process moves to the next configuration which gives the current process state.
The process needs to be chunked. The agent is a way to do it. The agent can take inputs like names and it can trigger a process. The agent definition consists of the names inputted and the initial configuration of the process. On triggering the agent, the process specified in the agent is instantiated and it merges with the process that instantiated it. Along with the process instantiation, the name is also injected into the process data space. Each agent is given an avatar. This avatar is one of the elements in the process instance. This avatar appears in the Human interface rather than the process id's. This could be either an image or a text.
Integration to other systems is also accomplished with the same concept. The external resources are all named and accessed through the integration agent as names or signals. An integration agent provides integration to the surround systems. This integration is achieved by exposing all computer resources as name spaces, and the platform interacts through the signal operators to integrate directly with all computer resources. The current plan is to expose all namespaces are URI namespaces. When an integration agent is encountered in a process, the surround system space is exposed to the process as a process space. The process instance, can walk through these process spaces, by the ASK and TELL signal operator.
To accomplish this, the integration agent, has to define the process name, the URL where the resource is located and the different actions and elements. The integration agent uses these information to fetch the elements from the source system on an ASK signal and also puts the elements in the target system on an TELL signal.
The arithmetic operations and logic operations are executed by Arithmetic and Logical Agent. The Arithmetic Agent is triggered by sending it the arithmetic expression to be computed. When an arithmetic expression is given, then the right hand side of the arithmetic is executed to raise the left hand side of the expression. If the right hand side expects values then it will be communicated by putting it into the interaction space (as an ASK signal operator) and waiting for the answer. On receiving all the names, expression is computed and the right hand value is expressed and put in to the interaction space (as an TELL signal operator).
The Logical Agent is triggered by send it the logical expression to be evaluated. When any of these logical expressions are given, then the right hand side of the logical expression is executed to raise the left hand side of the logical expression. If the right hand side expects values then it will be communicated by putting it into the interaction space (as an ASK signal operator) and waiting for the answer. On receiving the binding, the expression is evaluated and the decision is expressed with name in the left hand side of logical expression and is put into the interaction space (as an TELL signal operator).
The Timer Agent is used to trigger signals, when a particular time arrives. The Timer Agent, takes time and a name as input and it enqueues the name using TELL operator to the interaction space when the time mentioned approaches.
Besides these two agents, it also has a Command Agent. This is accomplished with the standard pipe mechanism of standard input, standard output and standard error. The standard input is published as a ASK signal into the interaction space, the output is published as a TELL signal into the interaction space, and the standard error is published as a TELL signal into the interaction space. This way it can communicate with the local operating system calls.
Figure. 1 Shows the logical architecture of the system or platform model. The process engine directly executes the process source code. This process engine is a process calculi execution engine. Process Engine consists of these six pieces. Each piece has its own specific functionality
Process Space: Each time a process is loaded the process space is loaded. The process space contains the process shape of each instance of a process, as every process instance
190 could be in a different process state. The process instance is differentiated by names. These names are created by calling the name server to get the new name. All the names are created at the time of process creation by interacting with the name server. After the initial process name creation, the rest of the action names are created with respect to the process instantiation name, which was received from the name server. The Process space consults the name server
195 to create the names for each of the subsequent names. This process space could be either accommodating on a central server to represent centralized processing, or it could be residing on distributed devices to represent distributed processing on a device swarm.
Name Server: The Name Server's functionality is to generate new universally unique names. The name server knows the current state of a name and hence it is possible to generate new 00 names. The name server has to be interrogated with the domain, the process name and the action that the name has to be generated before a name can be generated. The generated name is what differentiates one process instance from another. Each action can have different namespaces. The name space generation is the responsibility of the Name Server. The name server is also responsible for binding. I.e When the reaction engine, needs to check for 205 equivalence of names for binding, it needs to consult the Name Server.
Interaction Space: The Interaction Space keeps track of all signals which are raised. When the TELL or ASK signal is encountered in a process space, that name is published in the interaction space. Interrogating this space gives all signals/actions that are ready to be interacted with. The Reaction engine, polls this space to ensure if there are any names that exist in both the ASK 210 and TELL side of the interaction space. On encountering the names, the reaction engine removes the names from this space. The Ul agent also interrogates this space with a user workspace process name, to get all the pending names assigned to a user.
Reaction Engine: So in the interaction space, the signals that are ready for reacting are kept. It is the reaction engine which polls this space to ensure reactions are done. The reaction engine ^ 15 reads signals from the interaction space and consults the name server to get equivalence names. On matching of names, the process space is advanced to the next set of interactions and the new signals which are ready are moved from the process space and the names that are equivalent are removed the interaction space. When a reaction is completed, the meter is notified of the consumption of one interaction. The Reaction engine ensures that the reaction is 220 atomic, i.e the reading of equivalent names, checking for equivalence, updating the process space with the new configuration and removing of the names in interaction space is atomic. I.e. it is either done together or not done at all.
Meter: As mentioned earlier, the apparatus generates revenue on use. If the names that match are successful, then an interaction happens and the process moves forward. As the process 225 moving forward, has value to the business, the meter is incremented when reactions happen.
The metered units of interaction are sent to a billing system for billing. Algorithm Complex: This algorithm complex is triggered by send it the expression to be expanded. This could be either arithmetic or logical expression. When any of these expressions are given, then the right hand side of the arithmetic or logical expression is executed to raise the
»30 left hand side of the expression. If the right hand side expects values then it will be communicated by putting it into the interaction space (as an ASK signal operator) and waiting for the answer. On receiving the binding it completes the computation or decision to raise the right hand value. This is communicated to the outside world, by loading it into the interaction space. Besides the arithmetic expression and logical expression, it can also call functions from
235 the local operating system. This is accomplished with the standard pipe mechanism of standard input, standard output and standard error. The standard input is published as a ASK signal into the interaction space, the output is published as a TELL signal into the interaction space, and the standard error is published as a TELL signal into the interaction space. This way it can communicate with the local operating system calls also.
240 User Interface: act as an interface between the user and the coordination system. The Ul allows the user to create, modify or view the actions and agents. The User Interface, shows all the actions in the interaction space which can be interacted with.
The process instance is created when the process is created using a Replicate or Server Startup. If the process instance is created when the replicate operators is applied then a name 245 is created for this instance of the process by interrogating the name server.
The process instance consists of two spaces one is the process space (101) and the other is the process data space. The process space keeps track of the state or configuration of process and links to the process data space. The process space consists of set of actions. The process unfolds depending on how these interactions are likely to happen. So it is these 250 intermediate configuration changes of process kept in process space that define the interactions.
Process Data space keeps data private to a process. Only actions that are specified in the process can deliver the data to the outside world. In the process Data space, elementary data like Date, Time, Number and String can be stored. Besides this a name itself can be stored to *M>5 be published later. Once a name is taken from the process space and is delivered by ASK or TELL operator then it has to be removed from the Process Data Space.
The process moves forward due to interactions. So this system can depict breaks in process supply and demand. If there is true smooth flow of information or process flow, then no reactions would be pending. But pending interactions are breaks in the flow. This process metric 260 can be provided directly without any reports etc. What actions need to be monitored, can be specified when the action is defined.
A dynamic system behavior is exhibited when the behavior of the system changes depending on the input. This system allows this dynamic system behavior by passing names which can be interacted with by the receiving process to select varied behavior. Thus passage of names or 265 actions provides a way of dynamic information systems. For example, this is to establish a workflow. A user is represented in the system as a workspace process, by passing names from other processes through actions, it is possible to show those behaviours on the Ul from the user workspace process.
Present metrics s outputed by reading interaction space, showing interactions that are still pending. The metrics can be shown as in either aged presentation (which actions are older v/s newer) or as a dashboard showing thresholds of measurement (eg. As a gauge with metrics threshold). (But not shown in the diagram)
The process space depicts interactions in the future. Predictive metrics can be outputted by reading Process space, showing interactions that are still pending. The future Process road map of the process instance can be shown by reading the process space, (but not shown in the diagram)
For example in Fig.2, the accrual agent produces a functionality of accrual. Many accruals can be tied together by names to create an accounting process. The accrual agent is triggered by account and when it triggers it takes these names i.e opening balance, Credit, Debit and Closing Balance. These names are passed in the Account name. After the agent is triggered, it creates the actions or signals are presented in the figure 2. It accepts these names in the account name trigger and it opens the 3 names for interactions.
As mentioned in the figure 2, the internal mechanism is mentioned. Internally, it consists of 7 agents. These agents are composed using compose operator. Each agent has signal operators which are organized by configuration operators. The Accrual Agent, code is as considered below:
AccrualAgent = COMPOSE [ DebitAgent, CreditAgent, CloseAgent, OpenAgent, ArithmeticAgent]
Now let us address code for each of these agents.
DebitAgent = CHOICE [ASK(Stop).Nil; ASK(Debit) COMPOSE
[SEQ(TELL(Damt);DebitAgent));TELL(ArithmeticExpression("Dbal=Damt+Dbal");]
The Debit agent as mentioned above, is in a choice configuration operator, either the Stop or the Debit choice is provided. If the complementary Stop signal is sensed, then this agent stops. If it senses the complementary Debit signal, it executes publishes the possibility of delivering the Damt signal (received through the Debit Signal) \and after this the same DebitAgent repeats. But parallely, the arithmetic agent is instantitated through the arithmetic expression to compute Dbal. When the accrual agent is instantiated the Debit agent is instantiated presenting the two Stop and Debit signal.
CrediitAgent = CHOICE [OPTION [ ASK(Stop).Nil ]; . OPTION [ ASK(Credit).COMPOSE [ SEQ(TELL(Camt);CreditAgent)]; . TELL(ArithmeticExpression("Cbal=Camt+ Cbal ")]] The Credit agent as mentioned above, is in a choice configuration operator, either the Stop or the Credit choice is provided. If the complementary Stop signal is sensed, then this agent stops. 305 If it senses the complementary Credit signal, it executes publishes the possibility of delivering the Camt signal(received through the Credit Signal) and after this the same CreditAgent repeats. But parallel, the arithmetic agent is instantiated through the arithmetic expression to compute Cbal When the accrual agent is instantiated the Credit agent is instantiated presenting the two Stop and Credit signal.
310 CloseAgent = SEQUENCE [ ASK(Close); TELL(Stop);
TELL(ArithmeticExpression("closingbalance = Openingbalance + .. Cbal - Dbal") ]
The Close Agent as mentioned above provides the functionality of stopping debit and credit agent (by telling the stop signal) and tells the arithmetic agent to create the closing balance.
OpenAgent = COMPOSE [ TELL(Cbal); TELL(Dbal); TELL(Openingbalance) ]
315 The open Agent as mentioned above provides the functionality of raising the Cbal, Dbal and the opening balance so it can be bound when the arithmetic operators are activated later. This agent is activated, as it composed when the accrual agent is instantiated. The agent goes through the following agent behaviours
320 Agent Behaviours:
Configuration - Agent Instantiation
When the agent is instantiated because of the trigger through the account name, it instantiates the agent to create a process and hence it gets the process name from the name server and creates a process space for that process Id. Each agent gives the following different names into 325 the interaction space of all the names that are ready for reaction. The different names are stop, Debit, Credit and Close.
Configuration - Debit Name binding
When a complementary name, "Debit" arrives on the interaction space, the reaction engine 330 which constantly reads the interaction space makes a match for the corresponding complementary name and triggers the next action after debit. I.e. it exposes the Damt and also exposes the Arithmetic expression with the arithmetic expression Dbal=Damt+Dbal. Both are done together as it is in a configuration operator COMPOSE. This in turn triggers the Arithmetic agent and it instantiates the Dbal and Damt on the right hand side of the expression and creates 335 the ASK signal to get those names to complete the expression. These names are put into the interaction space. The Reaction engine binds this Dbal and Damt complementary signal (which were published earlier in the open agent i.e. first configuration) to solve the right hand side of the expression and publishes Dbal (right hand part of expression) into the interaction space. The Credit Name binding works along the same lines. Configuration - Close Name binding
When a complementary name for close is encountered in the interaction space, the reaction engine shows the next signal, i.e it raises the Stop signal. The Credit and Debit agent which are based on a CHOICE configuration operator, encounters the stop signal raised and proceeds to raise the next signal which is "NIL", i.e. no operation. So both the CreditAgent and DebitAgent dies. Then it publishes the Arithmetic Expression, which triggers the arithmetic agent to raise the closing signal and the whole agent completes.
The below code is an example of the process
. This process is to be only used as example to understand the working of configuration operator SEQUENCE and signal operators ASK and TELL.
Source
As in the code below, shows a definition of a process. The different tags define the whole source.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Process>
<Sequence>
<Tell>
<action><actionName>LR</actionName>
<dataElement>
<element>
<elementName>Name</elementName>
<type>String</type>
</element>
<element>
<elementName>LeaveDays</elementName>
<type>Number</type> </element>
370 </dataElement>
</action>
</Tell>
<Ask>
375 <action> <actionName>LR</actionName>
<dataElement>
<element>
<elementName>Name</elementName>
<type>String</type>
380 </element>
<element>
<elementName>LeaveDays</elementName>
<type>Number</type>
</element>
385 </dataElement>
</dataElement>
</action>
</Ask>
</Sequence>
390 <processName>Blocked Process</processName>
</Process>
The tag <process> defines the beginning and end of a process. The <processname> tag names the process. A process should contain either Sequence operators or signal operators. In the case, it sequences two signal operators in one Configuration operator <SEQUENCE>. So when 395 this process is loaded, first it will publish the first signal operator, in this case it is <TELL> and will publish the supply of the signal LR. Only on this LR binding or reacting, the next signal would be published for interaction/reaction.
For example: When the current dynamic information system is utilized in a healthcare billing, the user has provisions for logging into the application, and once get logged in, the index page or
400 screen directs the user to the desired functionality. The index page displays various options of the billing system including receivable dashboard, user, medical referral, case, patient, payment information. All options are process oriented and interact with each other. The system is user friendly and includes site map for tracking purposes. Search option provides a complete search of the data as it is obtained by bringing up all process interactions. The user mentioned here but
405 not limited to hospitals, healthcare industry or companies. The user is charged based on the usage i.e. pay per usage method using interaction meter.
It should be apparent that the present invention can be used in a variety of application but not limited to billing, with any suitable modifications.
410
Advantages of the invention
Unlike the earlier algorithmic systems, this system works on interactions. Hence it has lot of advantages compared to the earlier models.
In the conventional algorithmic models the flow was a separate construct, a new set of 415 functionality needed to be built to model workflow. But with this new invention, due to its basic process calculi fundamental the flow modeling and metrics is built in.
In the conventional model, the software has to be built as a point solution. I.e. all the connections have to be wired for a requirement. Once wired, it is very difficult to change, but with this new invention the control is accomplished with configuration of process space names. 420 Each of these names can be conceived by the business and can easily create these configurations. These will improve the productivity of process configurator's.
A process once it is created, can be easily simulated with the simulator provided, this will significantly improve process deployment as there is no extensive testing with test cases required. Since it is process based, the testing has to be simulated rather than testing for 425 boundaries etc.
Unlike conventional software which is done on a seat based licensing, with this new invention, the process advances with interaction, and hence it is possible to go to a utility model of billing. Go from a single licensing to a utility based per interaction based pricing.
With conventional software, the integration is achieved by transferring data. With this new
430 invention, all information resources is considered as a name and the integration agent can directly bind to this name significantly reducing effort to do integration. With conventional software, the search is accomplished by providing a search functionality by providing the search services for each entity in the system. But with this invention, the search is done by bringing up all process interactions that have the search space in the process data ¾35 space. Once the interactions are displayed then it can be viewed by the user in the Ul so he can begin by interacting with each interaction thus brought up.
With this invention, as it is based on flow, it is possible to directly create process flow and create expressions that can be directly executed on the invention. Complex workflow configurations can be accomplished by creating these interactions using the configuration operators provided.
440 Since this invention works on name spaces, it is possible to do distribute processing with this invention, as there is no centralized program which needs to do transformations. Each process space can be considered to be on a different device. Hence process behaviour developed on this invention will lead to new class of information systems that could not have been conceived earlier.
^5 Because of its mathematical origin, and with its repertoire of configuration operators, with this invention, it is possible to create new process configurations that could not have been conceived earlier.
It is to be recognized and understood that the invention is not to be limited to the exact embodiment as illustrated and described herein. For example, it should be apparent that the 450 method according to the present invention can be used in a variety of applications with suitable modifications which is known to a person skilled in the art. Accordingly, all modifications readily attainable by one of ordinary skill in the art from the disclosure set froth herein are deemed to be within the spirit and scope of the present invention
455
460

Claims

CLAIMS:
1) An application platform for dynamically creating business processes, information system and/or workflows comprising the steps of: divide the business process into actions; each action is named as per the business semantics and the atomic values that need to be communicated for each action; these actions are organized using signal and configuration operators, wherein signal(s) or flow(s) of actions are defined and configured through these operators; signal operators giving the interaction potential and configuration operators providing the process interaction sequencing; The defined,
actions, and process sequences are stored in a process repository, the defined process sequences are loaded into the platform from a process repository for execution in process space; the first signal(s) in the process sequence are exposed ready for interaction in interaction space; the complementary signals of the same name come together to interact or react creating a process movement; these process movements expose the next signals; these interactions are metered to bill the customer; these signals can be organized into smaller chunks using or through agents and they can be composed to create bigger processes.
2) The process space as claimed in claim 1 , wherein each process sequence is loaded
3) The method as claimed in claim 1 , wherein the software built can be billed "On Demand" using an interaction meter.
4) The method as claimed in claim 1 , wherein the business process/information system or workflows can be expressed with no algorithms but by organizing interaction.
5) The action as claimed in claim 1 , can consist of many atomic values or it could have no values.
6) The action as claimed in claim 1 , the atomic values consists of Date, Time, String, Number or Boolean
7) The signal operator as claimed in claim 1 , is either TELL or ASK.
8) The signal operators as claimed in 7, pushes the action ready for interaction into interaction space.
9) The signal Operator TELL as claimed in claim 7, posts the capability to deliver information and it generates a globally unique name for that action.
10) The signal Operator ASK as claimed in claim 7, posts the capability to receive information and it generates a globally unique name for that action.
11) The globally unique naming as claimed in Claim 8 and 9 is generated by Name Server
12) The name server as claimed in claim 11, wherein generating new names are unique based on custom Naming scheme 13) The Configuration operators as claimed in Claim 1 ; organize the interaction and it is loaded into process space.
14) The configuration operators as claimed in claim 12 are SEQUENCE, CHOICE, REPLICATE and COMPOSE.
15) The configuration operator SEQUENCE as claimed in claim 14, ensures that the operators are moved to interaction space only in sequence.
16) The configuration operator SEQUENCE as claimed in claim 14, can also consist of signal operator or configuration operator.
17) The configuration operator CHOICE as claimed in claim 14, consists of many sets of options and associated process body.
18) The CHOICE option as claimed in claim 17 consists of a signal operator. These options are pushed on to the interaction space
19) The CHOICE operator as claimed in claim 14, provides the many signal operators and takes one choice, when one option is interacted with the others, options are removed.
20) The configuration operator COMPOSE as claimed in claim 14, publishes all the actions into interaction space.
21) The configuration operator REPLICATE as claimed in claim 14, can have configuration operators, agent or signal operator. This operator creates new state with new names.
22) These configuration operators, as claimed in claim 14, can be composed in any combination to create process sequence.
23) The method as claimed in claim 1 , wherein the process space is configured with the process instance from the process repository for new processes and state is loaded from process state, when the software platform is started.
24) The software platform start up as claimed in claim 23, also loads the Name Server, interaction space, reaction engine, process engine and process space.
25) The software platform start up as claimed in claim 24, also loads the first actions of new processes to the interaction space.
26) The reaction as claimed in claim 1 , is executed by the reaction engine. It reads the interaction space and consults the name server to see if there is any complementary names exist for the same name.
27) The reaction engine as claimed in claim 26, once the names are identified, then pay load is transferred from the action giving information to the action accepting information.
28) The reaction engine as claimed in claim 26, notifies the process space to advance the process. 29) The reaction engine as claimed in claim 26, advances the affected process space as claimed in claim 23, and pushes the new free names in to the interaction space.
30) The reaction engine as claimed in claim 26, advances interaction meter by one and also removes the two complementary names from the interaction space.
31) The reaction engine as claimed in 24 through 30 is done in an atomic fashion.
32) The reaction in reaction engine as claimed in claims 24 through 30 are done only for running on a traditional processor, the claim 24 can also accomplished on new kinds of hardware architectures
33) The agent as claimed in claim 1 , wherein it can be triggered on a signal operator or it is encountered as part of the process sequence.
34) The agent as claimed in claim 31 , wherein the agent is configured recursively using configuration operators, the agent when it is triggered instantiates to the process using the same name.
35) The agent as claimed in claim 33, where in the agent becomes the process that called due to the replication operator, and then new names are generated for actions from the name server.
36) The agent as claimed in claim 34, accepts parameters and these parameters could be moved into the process space. The parameters could be atomic values as mentioned in claim 5 or it can also be an unique action.
37) The agent thus claimed in claim 33, can also be algorithmic, the different algorithmic agents are Arithmetic Expression Agent, Logical Expression Agent.
38) The Arithmetic Expression Agent claimed in claim 37, first exposes a action to accept the arithmetic expression. The right hand portion of expression, if it has unknown variables, it is moved to interaction space to wait for the values to arrive as ASK signal operator. On arrival of these names, the agent is triggered with the output and it is put into the interaction space as TELL signal operator.
39) The Logical Expression Agent claimed in claim 37, first exposes an action to accept the Logical expression. The right hand portion of expression, if it has unknown variables, it is moved to interaction space to wait for the values to arrive as ASK signal operator. On arrival of these names, the agent is triggered with the output and it is put into the interaction space as TELL signal operator.
40) The signal operators as claimed in claim 7, appears as an interaction touch point (as in a button) on a human interface or it appears as an interaction touch point for a computer to computer interaction.
41) The interaction space as claimed in claim 1 , keeps the track of all names and remove the complementary names which are reacted 42) The reaction engine as claimed in claim 24, wherein handles reactions or binding of complementary actions
43) The process engine as claimed in claim 24, wherein each process is run or executed
44) The method according to claim 3, wherein interaction meter generates the bill based on pay per usage instead of owing the application completely
45) The process space as defined in claim 2, can be considered to be on a different device.
46) The agent according to claim 1 , wherein the agent avoids the need to rewrite the program when information systems change
PCT/IN2012/000490 2011-07-11 2012-07-11 A new agent based approach for creating dynamic information systems WO2013008254A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN2371/CHE/2011 2011-07-11
IN2371CH2011 2011-07-11

Publications (3)

Publication Number Publication Date
WO2013008254A2 true WO2013008254A2 (en) 2013-01-17
WO2013008254A3 WO2013008254A3 (en) 2013-03-07
WO2013008254A4 WO2013008254A4 (en) 2013-05-02

Family

ID=46801607

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/IN2012/000490 WO2013008254A2 (en) 2011-07-11 2012-07-11 A new agent based approach for creating dynamic information systems

Country Status (1)

Country Link
WO (1) WO2013008254A2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019058365A1 (en) 2017-09-19 2019-03-28 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Somatostatin prodrugs

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157468A1 (en) 2006-03-01 2009-06-18 Alappatt Antony K Interaction-based method for the implementation of coordination systems

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090157468A1 (en) 2006-03-01 2009-06-18 Alappatt Antony K Interaction-based method for the implementation of coordination systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019058365A1 (en) 2017-09-19 2019-03-28 Yissum Research Development Company Of The Hebrew University Of Jerusalem Ltd. Somatostatin prodrugs

Also Published As

Publication number Publication date
WO2013008254A3 (en) 2013-03-07
WO2013008254A4 (en) 2013-05-02

Similar Documents

Publication Publication Date Title
CN102411503B (en) A kind of method and system of the dry running performing business process model when design in environment
Happe et al. Parametric performance completions for model-driven performance prediction
Grambow et al. Contextual injection of quality measures into software engineering processes
CN102439562A (en) Card processing
Reinhartz-Berger et al. Utilizing domain models for application design and validation
Back et al. Analysing UML use cases as contracts
Moreira et al. Adding rigour to object-oriented analysis
Dori Object-process methodology applied to modeling credit card transactions
Khan et al. A study: selection of model metamodel and SPL tools for the verification of software product lines
Steghöfer et al. PosoMAS: an extensible, modular SE process for open self-organising systems
WO2013008254A2 (en) A new agent based approach for creating dynamic information systems
Corradini et al. BProVe: tool support for business process verification
Liu et al. Software abstractions and human-cyber-physical systems architecture modelling
Chen et al. Towards interface-driven design of evolving component-based architectures
Cople et al. A simulation framework for technical systems life cycle cost analysis
Minkiewicz The evolution of software size: A search for value
Archibald et al. Quantitative modelling and analysis of BDI agents
Graaf et al. Model-driven migration of supervisory machine control architectures
Määttä Reactive Programming in iOS Application Development
Tran-Jørgensen Enhancing System Realisation in Formal Model Development
Heinzl et al. Function References as First Class Citizens in UML Class Modeling.
Chen et al. Harnessing rCOS for tool support—the CoCoME experience
Steghöfer et al. Combining PosoMAS method content with Scrum: agile software engineering for open self-organising systems
Noro et al. E-aosas++ and its software development environment
EP4195115A1 (en) Compartmentalizing a process

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12756268

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase in:

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12756268

Country of ref document: EP

Kind code of ref document: A2