The present invention relates to the modeling and creation of telecommunications software and services. The telecommunications industry is rapidly evolving and expanding and new technologies are constantly being developed and introduced. These technologies create opportunities to develop services of value to customers. However, the pace at which these technologies are being introduced also means that service providers must be able to quickly respond and adapt to meet customer requirements.
Typically, the development of telecom services is performed by individuals with detailed knowledge of telecom protocols and software programming. The development process can be complicated and time consuming and often requires collaboration between programmers and telecom domain experts to properly address the programming details required in the development of services. Moreover, programming protocols in the telecom domain are fast changing with new ones being frequently introduced thereby requiring skilled individuals to continually update their knowledge base.
In view of the time, expertise, and expense typically required for programming development of telecom services, and the ever-changing nature of telecom programming protocols, it is desirable to have a telecom services development tool that permits the development of telecom services without the need for specialized knowledge of programming protocols, software and the like.
The present invention is directed to a method of telecom software and service development that allows a user to model and create telecom services independent of telecommunications protocols and network layer details. The method of the invention operates by creating an abstract model of a desired telecom service or services that is converted, using a set of extensible transformations, into executable code. Models in accordance with the method of the invention are constructed using an Integrated Development Environment (IDE) for creating and developing telecom services that embodies the Telecom Service Domain specific Language (TS-DSL) which is implemented as a Unified Modeling Language (UML) extension for the telecom domain. By this method, individuals without specialized knowledge of telecom services and related software programming and protocols can successfully design and implement telecom services. The ease of implementation of the method also reduces design time and, therefore, time to market of the finished product.
An embodiment of the invention is a method for the creation of telecom services comprising selecting predefined model parts related to specific services and expressed in Domain Specific Language; assembling the predefined static and behavioral model parts into an abstract model of desired telecom services; and automatically transforming the abstract model into executable code, wherein the automatically transforming step comprises an algorithm that maps at least one of structural and behavioral elements of at least one of Activity and State machine diagrams into at least one of executable Java code and elements required to create a telecom service solely based on the abstract model.
Further, in the above embodiment of the invention, the predefined model parts comprise portions of typical telecom services and elements including state machines describing service behavior, service specification as a black box and an additional place holder for implementing the service as a white box.
Further, in the above embodiment the Domain specific language is implemented as a UML profile and a model library with Telecom specific abstractions of general modeling elements, and pre-compiled run time blocks that can be used together with other model elements.
Further, in the above embodiment automatically transforming the abstract model further comprises using a special combination of code generated by the model parts and of pre-compiled core code, said core code being common to all services created by the method and supportive of DSL behavior parts and wherein for each component of telecom service created, a Java siplet is automatically created from the model and wherein the siplet is responsible for interacting with the telecom service environment and may create a state machine when applicable or forward events to an existing one.
The method of the invention is embodied in an IDE based on TS-DSL. TS-DSL is a UML extension for the telecom domain and is a language for defining Telecom services such as IP Multimedia Subsystems (IMS) Services abstracting over telecom domain specific architectures and protocols such as IMS, SIP, Diameter, SDP, etc.
This language is intended to be used by modelers who may or may not have telecom domain knowledge. In this regard, TS-DSL allows a user to model and create a telecom service in abstract form while hiding internal details from modelers thereby providing high level building blocks for designing Telecom Services. The service model building process is based on predefined types of services (partial models and templates) that the user selects for his newly created service model. Once a template type is selected, the user first configures its properties as required. The desired elements of the model are then generated. The model created by the framework of the template selected will contain predefined elements including state machines and activities describing service behavior, a service specification as a black box and an additional placeholder for implementing the service as a white box.
Extending and modifying this initial model, a user can specify details of service behavior using a combination of state machines and Activity charts. Any model that complies with the validation rules will be transformed into code including its behavior. This transformation comprises an algorithm that maps both structural and behavioral elements of the Activity and State machine diagrams (like call and behavior actions and state and transitions) into executable Java code and other elements needed to create Telecom service based on the model. In this regard no human intervention is needed at the code level. All the required programming information is contained within the Telecom model which is at a higher level of abstraction than the application code. The TS-DSL enables modelers to define both the static and dynamic aspects of a Telecom Service. For this, it utilizes UML2 and IBM's “UML Profile for Software Services”; refining and extending it for the telecom domain. While an embodiment of the method is directed to IMS telecom services, IMS support is an extension to core telecom services support and other extensions can also be defined. In an embodiment, TS-DSL is implemented as an overlay to IBM's rational tool, RSA. A description of TS-DSL and its features now follows.
In Service Oriented Architecture, (SOA) a service (defined by IBM's “UML Profile for Software Services”) is a black box defining only the interfaces through which the outside world can communicate with it (known as Provided Interfaces) and what it requires from other services in order to operate as expected (known as Required Interfaces). This representation enables distinguishing a service representation from its implementation. In contrast to other service types, and as depicted in
To provide these features in TS-DSL, the following elements, also depicted in
Each ServiceOperation may have a set of parameters and return value. Some of the parameters can be tagged to specify an additional semantic role. For this version we defined the following semantic roles:
To simplify the service modeling, the Telecom Service Creation Environment allows a designer to create a new TelecomService based on an existing template or customizing existing models. In such a case, the service initial structure is generated automatically according to the template, thus providing the designer with a better starting point.
To further simplify the modeling task, TS-DSL defines a set of commonly used TelecomErrors and Notifications that can be used as-is in the service model. These elements are stored in the Telecom Model Library. In any case, designers can introduce proprietary Notifications and TelecomErrors within their model by stereotyping Signals accordingly.
A Telecom Model Library (discussed below) includes a set of predefined commonly used Errors and Notifications that can be used as-is by designers. Designers can introduce proprietary Notifications and Errors within their model by stereotyping their Signals accordingly. While UML provides support for errors, in TS-DSL an implicit type of Signal named “Error” is introduced. In TS-DSL, errors can be thrown from operation execution (specified via Operation's ThrownExceptions list) and by the service it self (defined via the provided TelecomServiceSpecification).
The Telecom Service domain is event oriented in nature since requests and responses are sent to and from a service in an asynchronous manner. This can require synchronization support in the behavioral model, which can be difficult in some cases. To simplify this for modelers, TS-DSL allows a user to specify whether TelecomServiceSpecification Operations are synchronous or asynchronous in nature. Thus, if an operation is classified as Synchronous and it is activated from within the behavior model, then underlying transformations will be responsible for adding synchronization support instead of the modeler at design time. To support this in the profile, ServiceOperation contains the “is Synchronous” attribute depicted in
The Service Creation Environment (SCE) allows designers to define a telecom Service and specify how it interacts with external services from different platforms. The main idea is to hide the platform details of ExternalService TelecomServiceSpecification, ServiceOperations, Notifications, TelecomErrors and Data types.
When a Service model is created, a Service Structure Diagram is created within it to define its relationship to external services. To locate services, TS-DSL uses a Service registry. Using the service registry a user can lookup a service and get information on it. When the modeler decides to import a service from the registry an ExternalService instance is created accordingly and is placed in a special package named “External Services”. An ExternalService is a type of “read-only” Component (seen as “black box”) thus only its provided TelecomServiceSpecification is exposed. It is defined with a few attributes (that are not exposed for modification to the designer) indicating on its ID in the service registry and the exact time it was imported. This information is used by the Service Creation Environment to assure that the transformed ExternalService content is up-to-date with the latest version of the service in the registry. All of the External service implementation details and binding information are hidden from the modeler.
In order to invoke an external service from an Activity, we defined the ServiceInvocationAction (for more info see next sub section). When creating this Action, the designer is expected to select an external service provided interface Operation that he wants to invoke. Following which, the input and output pins of the action will be updated to match the signature of the chosen Operation.
For example,
Service behavior refers to how the different Service parts interact, what elements activate what functionality under particular conditions, when external services are invoked, etc. In TS-DSL, concrete constructs are introduced that can be used in the behavioral model, particularly in state machines and activities, to define as fully as possible the behavioral aspects of a telecom service. These constructs are taken as input in the transformation process and quality executable code is produced from them.
Each Telecom Service is created with a main Statemachine. In it the modeler is required to specify the service interaction with the external world (service side). In TS-DSL, the movement from State to State in a Telecom Service can be initiated for the following reasons:
In all cases, the constraints on the transition need to be met in order for the flow to pass through it to the next stage. To capture this in the profile, TS-DSL defines the following events depicted in
When designing the service main State Machine the modeler needs to define States and Transitions between them. In many cases the modeler can decide to create a new service using a service template which generates an initial Statemachine automatically for him. This reduces the amount of design work needed at this point. An example of such a Statemachine can be seen in
In order to aid designers in passing trigger information into the “do” Activity and implicitly indicating what caused the arrival to the state, the following AcceptEventActions depicted in
When a trigger is placed on a transition pointing to an instance of one of the aforementioned Events depicted in
At any point in the Activity's logic, the modeler can also design sending (or broadcasting) a Notification. For this we defined the SendNotification (extending SendSignalAction) as seen in
Modelers can activate an external service within the Telecom Service Model Activities. To support this in the profile, TS-DSL defines the ServiceInvocation (extends CallOperationAction) as seen in
When designing a TelecomService, usually several logic fragments need to be designed. In this regard, TS-DSL includes a few control related Actions as depicted in
When implementing a DSL over UML, there are two accepted ways to introduce entities into the target model. One is via a profile (described above) and the other is by introducing model libraries. A Model Library is a model that can be referenced from the target model and cannot be modified by it. It includes sets of entities that can be used as-is or as base elements (extended via generalization) inside the model. In this section, various elements defined in the Telecom Model Library are described. Their top level packaging and dependencies are depicted in
All types can be either used ‘as is’ in the newly-created services or extended with additional attributes and operations using UML Generalization relationship. Users can use UML primitive types, like String, Integer, etc. combined with Telecom library types when defining new composite data types for their service. The types defined here are derived from known standards, including Shared Information Data (SID) models that relate to TMF (TeleManagement Forum) working on eTOM and SID evolving standards.
The following types depicted in
Time related types depicted in
Errors, Notifications, and TelecomSignals
The library includes several types of commonly used Notifications and TelecomErrors. An initial set of TelecomErrors is seen in
The purpose of the TS-DSL Communication Library is to capture telecom related aspects in an object oriented manner that is both flexible and high level.
In TS-DSL, emphasis has been placed on modeling common telecom of communications, e.g. Call session and Instance Message. These communications interact with parties in order to communicate. For example, Instance message does so via messages sent to target clients, and Call does so by gathering a set of clients to a joined session.
Transformations operate in conjunction with the model library and generate code from its contents.
In an embodiment, TS-DSL comprises of various service types that can be used as a starting point for service design and customized when necessary (set can be extended). When they are used as Model Templates, SCE creates a new Service that inherits from them with a special structure and content applicable for configuring it for the new service needs (e.g. initial state machine, implementation class and package structure).
The three types of services defined are:
When creating a new service in the SCE we can select to create is based on one of these templates. When we do so, we are asked (via a set of wizard pages) to configure the template instance according to the service characteristics. Once we finish a new service is created with initial structure and content based on the template properties. This includes, among other parts, an initial state machine with states and transitions, implementation class and package structure. The state machines of the three templates defined above can be seen in the following subsections.
This template behavior is described by the State Machine presented in
This template behavior is described by the State Machine presented in
This template behavior is described by the State Machine presented in
The Service Creation Environment allows domain experts to introduce new entities into the modeling environment to be used by modelers when designing a telecom service. These entities are introduced into the SCE Reusable constructs Library. Modelers can inspect the library at any time and choose to instantiate any of the constructs available. When a domain expert introduces a new construct type into the library, he/she contributes information that may include:
Examples of such entities are MediaPlayer and UnitConverter described below. Referring now to
When working with external services, in many cases, the modeler may be faced with situations where the units of the data are different from the ones he/she expects or uses. For this reason TS-DSL defines a basic Unit Converter depicted in
TS-DSL and its elements as described above comprise one embodiment of an IDE that designers and modelers can use as a tool to create telecom services. Using the elements discussed above, telecom services can be designed and implemented by creating a model of the services desired in abstract form and then transforming the abstractions into executable code. This method is depicted in
It should be noted that the embodiment described above is presented as one of several approaches that may be used to embody the invention. It should be understood that the details presented above do not limit the scope of the invention in any way; rather, the appended claims, construed broadly, completely define the scope of the invention.