This application is related to commonly assigned U.S. patent application entitled “FACETED, TAG-BASED APPROACH FOR THE DESIGN AND COMPOSITION OF COMPONENTS AND APPLICATIONS IN COMPONENT SYSTEMS”, Ser. No. 12/252,156, filed concurrently herewith, the disclosure of which is incorporated by reference herein in its entirety.
1. Technical Field
The present invention relates to requirements engineering in information processing systems.
2. Discussion of the Related Art
In general, it is difficult to elicit formal software requirements from end-users. For example, most software requirements tend to be captured in an informal manner in an unstructured document. This makes it difficult to concisely describe the requirements, to communicate the requirements to an IT or development team precisely, and then, to verify that the requirements have indeed been met by the developed IT artifacts.
Accordingly, there is a need for a technique of eliciting formal software requirements from end-users.
In an exemplary embodiment of the present invention, a method, comprises: providing a computer menu from which a processing goal can be created, wherein the menu includes a plurality of facets, and wherein each facet includes at least one tag; receiving a processing goal, wherein the processing goal includes a plurality of tags selected from the menu; executing at least one application that includes a plurality of components arranged in a processing graph to produce information that satisfies the processing goal; and outputting the information.
A facet is a category on the computer menu that presents at least one tag associated therewith when the facet is selected.
At least one tag is a keyword associated with an available resource.
The tags are organized in a hierarchy.
The hierarchy is a directed acyclic graph.
In an exemplary embodiment of the present invention, a method, comprises: receiving a software requirement; and representing the software requirement as a plurality of processing goals described by a goal pattern, wherein the goal pattern is described by a set of tags and facets, and wherein each facet is associated with a constraint that specifies how many tags in the facet should be part of a particular processing goal.
The method further comprises developing one or more applications that satisfy the processing goals.
The software requirement comprises a high-level software requirement.
An application includes a plurality of components capable of satisfying at least one of the plurality of processing goals.
The method further comprises: initiating at least one of the applications on a computer accessible to a user; receiving a processing goal from the user, wherein the processing goal includes at least one tag selected by the user, and wherein the tag is included in a facet selected by the user; executing the at least one application to produce information that satisfies the processing goal; and providing the information to the user.
In an exemplary embodiment of the present invention, a computer readable storage medium stores instructions that, when executed by a computer, cause the computer to perform a method, the method comprising: providing a computer menu from which a processing goal can be created, wherein the menu includes a plurality of facets, and wherein each facet includes at least one tag; receiving a processing goal, wherein the processing goal includes a plurality of tags selected from the menu; executing at least one application that includes a plurality of components arranged in a processing graph to produce information that satisfies the processing goal; and outputting the information.
A facet is a category on the computer menu that presents at least one tag associated therewith when the facet is selected.
At least one tag is a keyword associated with an available resource.
The tags are organized in a hierarchy.
The hierarchy is a directed acyclic graph.
In an exemplary embodiment of the present invention, a computer readable storage medium stores instructions that, when executed by a computer, cause the computer to perform a method, the method comprising: receiving a software requirement; and representing the software requirement as a plurality of processing goals described by a goal pattern, wherein the goal pattern is described by a set of tags and facets, and wherein each facet is associated with a constraint that specifies how many tags in the facet should be part of a particular processing goal.
The method further comprises developing one or more applications that satisfy the processing goals.
The software requirement comprises a high-level software requirement.
An application includes a plurality of components capable of satisfying at least one of the plurality of processing goals.
The method further comprises: initiating at least one of the applications on a computer accessible to a user; receiving a processing goal from the user, wherein the processing goal includes at least one tag selected by the user, and wherein the tag is included in a facet selected by the user; executing the at least one application to produce information that satisfies the processing goal; and providing the information to the user.
The foregoing features are of representative embodiments and are presented to assist in understanding the invention. It should be understood that they are not intended to be considered limitations on the invention as defined by the claims, or limitations on equivalents to the claims. Therefore, this summary of features should not be considered dispositive in determining equivalents. Additional features of the invention will become apparent in the following description, from the drawings and from the claims.
This disclosure incorporates by reference herein in its entirety, Bouillet et al. A tag-based approach for the design and composition of information processing applications. Object-Oriented Programming, Systems, Languages and Applications (OOPSLA) '08, to be published Oct. 19-23, 2008.
In this disclosure, we provide a novel technique for describing end-user requirements. In an exemplary embodiment, the technique utilizes faceted, tag-based functional requirements that are elicited from end-users. The facets represent different dimensions of both data and processing, where each facet is modeled as a finite set of tags that are defined in a controlled folksonomy. The faceted, tag-based functional requirements are the starting point of a top-down lifecycle where workflows and individual services are designed, explicitly keeping in mind the needs of the composition. The requirements are taken by enterprise architects who design workflow templates that are also associated with faceted, tag-based descriptions. These workflow templates can either reuse existing services of workflows, or they can be used to generate new service requirements, which are also described in terms of facets and tags. These new services are then developed by developers, and are tested individually in conjunction with other services as per the workflow templates.
In this disclosure, we focus on information processing workflows, which are workflows that retrieve and process information as desired by end-users. It is to be understood, however, that the exemplary embodiments of the present invention are not limited thereto. These workflows make available unified information, obtained or extracted from multiple data sources, in response to end-users' information inquiries. Examples of such workflows are those that obtain business intelligence for analysts and those that perform information integration and content management. The key drivers for these workflows are to facilitate better decision making by end-users and better information sharing between business operations.
In this disclosure, we focus on information processing workflows that extract data from one or more sources, process them after using one or more services, and produce useful information or knowledge. The key end-users of information processing workflows are analysts and decision makers in various enterprises. These end-users need to quickly obtain and update the business intelligence that guides their decision. For this, they need to collect the needed information from a potentially huge number of diverse sources, adapt and integrate that data, and apply a variety of analytic models, updating the results as the data changes. When new sources are discovered and/or new analytic models are developed—or simply when new ways of applying existing models are desired—users of information systems cannot and should not wait the days or months needed for development cycles to complete, to get the analysis results they urgently need. These users require the serendipitous assembly of new workflows from the available services to satisfy their dynamic and changing information processing goals.
Tags and Tag Hierarchies
The word “tag” comes from various collaborative tagging applications that have arisen in Web 2.0 (such as del.icio.us and Flickr) where users annotate different kinds of resources (like bookmarks and images) with tags. These tags aid search and retrieval of resources. A key aspect of the tagging model is that it is relatively simple, in comparison to more expressive models such as those based on Semantic Web ontologies and other formal logics. Hence, it offers a lower barrier to entry for different kinds of users to describe resources. In our case, the resources are different kinds of data artifacts, like files, input and output messages to services, etc.
Let T={t1, t2, . . . , tk} be the set of tags in our system. In most social tagging applications, the set of tags, T, is completely unstructured, i.e., there is no relation between individual tags. Introducing a hierarchy structure in T, however, enhances the expressivity by allowing additional tags to be inferred for resources. A tag hierarchy, H, is a directed acyclic graph (DAG) where the vertices are the tags, and the edges represent “sub-tag” relationships. It is defined as H=(T,S), where T is the set of tags and ST×T is the set of sub-tag relationships. If a tag t1εT is a sub-tag of t2εT, denoted t1t2, then all resources annotated by t1 can also be annotated by t2. For convenience, we assume that ∀tεT, tt.
Facets
Facets represent dimensions for characterizing resources (data artifacts). Let F={fi} be the set of facets. Each facet is a set of tags, i.e., fiT. Tags may be shared across facets.
Dynamic End-User Processing Goals Expressed Using Tags
As shown in
Each data artifact in our system, a is characterized by a set of tags d(a)T. The data artifacts include the input and output messages of web services, RSS feeds, web pages, files, etc. The tags only describe the semantics of the data artifacts, and not the actual syntax.
End-user goals describe the semantics of the desired data artifacts that may be produced by an information processing workflow. A goal, qT, is satisfied by a data artifact, a, iff ∀tεq∃t′εd(a), t′t.
When a user selects a goal, a workflow is composed in a bottom-up manner from the available services. In our system, this bottom-up composition occurs through an AI planner, such as, for example, the planner described in, [A. Riabov and Z. Liu. Planning for stream processing systems. In American Association for Artificial Intelligence (AAAI), 2005], the disclosure of which is incorporated by reference herein in its entirety, that uses tag-based descriptions of individual services to come up with a workflow satisfying the goal.
We model a workflow as a graph G(V, E) where G is a DAG (Directed Acyclic Graph). Each vertex vεV is a service instance. Each edge (u, v) represents a logical flow of messages from u to v. If a vertex, v has multiple incoming edges of the form (u1, v), (u2, v), . . . , then it means that the output message produced by u1, u2, . . . are used together to create an input message to v. The message corresponding to each edge, (u, v), can be described by a set of tags, d((u,v)). In this disclosure, we restrict the workflows to acyclic graphs since capturing the semantics of messages where there are loops is difficult.
Overview of Potential Lifecycle Based on Faceted, Tag-Based Requirements
For this purpose, we provide a service engineering lifecycle (see
The functional requirements are taken by an enterprise architect who comes up with a high-level design of the overall workflow(s) and of individual services. The architect first constructs one or more workflow templates that satisfy the requirements. A workflow template is a high-level description of the flow structure and is modeled as a graph of processing stages, where each stage performs a certain segment of the overall required information processing. Each stage in turn consists of a graph of service classes, where a service class is an equivalence class of services that share similar properties and are substitutable in certain contexts. The services have a modular and substitutable nature and enable composition. In addition, the decomposition of the workflow into processing stages allows reuse of both services and entire sub-flows.
The architect can reuse existing services (and service classes) in designing the workflow. In some cases, new services may need to be developed, or existing services modified, to satisfy new end-user requirements. The architect defines the semantic requirements of the new services in terms of tags describing the input and output data. In addition, the architect defines the syntactic interfaces (e.g., using WSDL) to enable its interaction with other services in the processing stage, and in the workflow in general. These semantic and syntactic service requirements are passed to a developer, who develops the service and tests it both individually and in conjunction with other services. Finally, the new services are made available for composition and deployment. This may also result in changes to the end-user interface to include the new tags describing the outputs of workflows that contain the new service. Finally, as shown in
In summary, some notable aspects of our approach are:
1. The common, yet extensible, facets and tag hierarchies establish a simple, shared vocabulary that is used by architects, developers and end-users.
2. End-user requirements are captured in a formal manner. This enables us to verify that the requirements are actually satisfied by a set of composable services.
Faceted, Tag-Based Requirements for Driving Composition
Workflow composition requires careful design of the services. The first need is to make sure that at least those flows are composed that meet certain business requirements, which are explicitly specified by the end-users. In addition, if they satisfy new requirements through serendipitous composition of services, that is a bonus.
Hence, in our approach, high-level end-user requirements drive the service engineering process. In any large-scale information processing system, there may be a large number of different kinds of information, and a large number of different ways of processing this information. Hence, requirements are not specified in terms of single goals but as whole classes of goals that are described by goal patterns.
A goal pattern is described as a set of tags and facets. Each facet is associated with a cardinality constraint. The cardinality constraint specifies how many tags in the facet should be part of the goal.
We first define the set of cardinality constraints, CC, as the set of all ranges of positive integers. Then a goal pattern, QP={(x, c)|xεF, cεCC}∪{t|tεT}. A goal pattern requirement means that end-users are interested in all data artifacts that can be described by a combination of tags that are drawn from the facets in the goal pattern, according to the cardinality constraints.
An example of a goal pattern is {Source[≧1], WeatherForecastModel[≧2], MultipleModelAnalysis[1], BasicWeatherMetric[≧1], Visualization[1]}.
This represents the class of all data artifacts that can be used to describe one or more tags that belong to the Source facet, two or more tags in the WeatherForecastModel facet, one tag in the MultipleModelAnalysis facet, one tag in the BasicWeatherMetric facet, and one tag in the Visualization facet.
A point to note is that the goal pattern can refer to a large number of possible goals. For example, if there are five tags in the Source facet, 50 tags in the Model facet, five in the MultipleModelAnalysis facet, 10 in the BasicWeatherMetric facet, and 10 in the Visualization facet, there are up to 25×25°×5×210×10 possible kinds of data that may be producible by the information processing system. The goal pattern helps in succinctly expressing the combinatorial number of possible goals that can be submitted to the system.
In this disclosure, we described the use of faceted, tag-based descriptions as a means of specifying high-level end-user requirements, in accordance with an exemplary embodiment of the present invention. The requirements kick off a top-down service development lifecycle, where enterprise architects and service developers design abstract workflow templates, generate requirements for new services, develop and test the new services and workflows, and finally make available the services for manual or automatic composition in response to dynamic user goals.
A system in which exemplary embodiments of the present invention may be implemented is shown in
Computer system 100 is shown including a processing unit 105, a memory 115, a bus 155, and input/output (I/O) interfaces 110. Further, computer system 100 is shown in communication with external devices/resources 145 and one or more storage system 150. In general, processing unit 105 executes computer program code, such as AI planner 120 or an application 160, that is stored in memory 115 and/or storage system 150. While executing computer program code, processing unit 105 can read and/or write data, to/from memory 115, storage system 150, and/or I/O interfaces 110. Bus 155 provides a communications link between each of the components in computer system 100. External devices/resources 145 can comprise any devices (e.g., keyboard, pointing device, display (e.g., display 135), printer, etc.) that enable a user to interact with computer system 100 and/or any devices (e.g., network card, modem, etc.) that enable computer system 100 to communicate with one or more other computing devices.
Storage system 150 can be any type of system (e.g., database) that is capable of providing storage information for use with exemplary embodiments of the present invention. Such information can include, workflow templates, services and service classes, semantic and syntactic requirements, test results, etc. Shown in memory 115 (e.g., as a computer program product) is the AI planner 120, which is used to develop workflows consisting of components configured to satisfy a user goal, and one or more application(s) 160, which represent the developed workflows, that can be executed by the end-user(s) 140, for example. The application(s) 160 can also be stored in the storage system 150.
It should be understood that the present invention may be implemented in various forms of hardware, software, firmware, special purpose processors, or a combination thereof. In one embodiment, the present invention may be implemented in software as an application program tangibly embodied on a program storage device (e.g., magnetic floppy disk, RAM, CD ROM, DVD, ROM, and flash memory). The application program may be uploaded to, and executed by, a machine comprising any suitable architecture.
It is to be further understood that because some of the constituent system components and method steps depicted in the accompanying figures may be implemented in software, the actual connections between the system components (or the process steps) may differ depending on the manner in which the present invention is programmed. Given the teachings of the present invention provided herein, one of ordinary skill in the art will be able to contemplate these and similar implementations or configurations of the present invention.
It should also be understood that the above description is only representative of illustrative embodiments. For the convenience of the reader, the above description has focused on a representative sample of possible embodiments, a sample that is illustrative of the principles of the invention. The description has not attempted to exhaustively enumerate all possible variations. That alternative embodiments may not have been presented for a specific portion of the invention, or that further undescribed alternatives may be available for a portion, is not to be considered a disclaimer of those alternate embodiments. Other applications and embodiments can be implemented without departing from the spirit and scope of the present invention.
It is therefore intended, that the invention not be limited to the specifically described embodiments, because numerous permutations and combinations of the above and implementations involving non-inventive substitutions for the above can be created, but the invention is to be defined in accordance with the claims that follow. It can be appreciated that many of those undescribed embodiments are within the literal scope of the following claims, and that others are equivalent.
This invention was made with Government support under Contract No.: H98230-07-C-0383 awarded by the U.S. Department of Defense. The Government has certain rights in this invention.
Number | Name | Date | Kind |
---|---|---|---|
4821211 | Torres | Apr 1989 | A |
6401096 | Zellweger | Jun 2002 | B1 |
7334216 | Molina-Moreno et al. | Feb 2008 | B2 |
7360175 | Gardner et al. | Apr 2008 | B2 |
7502799 | Ohmori et al. | Mar 2009 | B2 |
7548917 | Nelson | Jun 2009 | B2 |
7600188 | Good et al. | Oct 2009 | B2 |
7730447 | Ringseth et al. | Jun 2010 | B2 |
7792836 | Taswell | Sep 2010 | B2 |
7793268 | Wassel et al. | Sep 2010 | B2 |
7802230 | Mendicino et al. | Sep 2010 | B1 |
7908584 | Singh et al. | Mar 2011 | B2 |
7933914 | Ramsey et al. | Apr 2011 | B2 |
8161036 | Tankovich et al. | Apr 2012 | B2 |
8175936 | Ronen et al. | May 2012 | B2 |
8185892 | Lucas et al. | May 2012 | B2 |
8225282 | Massoudi et al. | Jul 2012 | B1 |
8239820 | White et al. | Aug 2012 | B1 |
8327351 | Paladino et al. | Dec 2012 | B2 |
20030058282 | Sato | Mar 2003 | A1 |
20040059436 | Anderson et al. | Mar 2004 | A1 |
20040254949 | Amirthalingam | Dec 2004 | A1 |
20050108001 | Aarskog | May 2005 | A1 |
20050166193 | Smith et al. | Jul 2005 | A1 |
20050203764 | Sundararajan et al. | Sep 2005 | A1 |
20050204337 | Diesel et al. | Sep 2005 | A1 |
20050228855 | Kawato | Oct 2005 | A1 |
20060242101 | Akkiraju et al. | Oct 2006 | A1 |
20060248467 | Elvanoglu et al. | Nov 2006 | A1 |
20060271565 | Acevedo-Aviles et al. | Nov 2006 | A1 |
20070011155 | Sarkar | Jan 2007 | A1 |
20070033590 | Masuouka et al. | Feb 2007 | A1 |
20070061776 | Ryan et al. | Mar 2007 | A1 |
20070073570 | Montagut | Mar 2007 | A1 |
20070174247 | Xu et al. | Jul 2007 | A1 |
20070214111 | Jin et al. | Sep 2007 | A1 |
20080016072 | Frieden et al. | Jan 2008 | A1 |
20080104032 | Sarkar | May 2008 | A1 |
20080168420 | Sabbouh | Jul 2008 | A1 |
20080189675 | Aupperle et al. | Aug 2008 | A1 |
20080228851 | Angelov et al. | Sep 2008 | A1 |
20080229217 | Kembel et al. | Sep 2008 | A1 |
20080229278 | Liu et al. | Sep 2008 | A1 |
20080313229 | Taswell | Dec 2008 | A1 |
20090037268 | Zaid et al. | Feb 2009 | A1 |
20090077124 | Spivack et al. | Mar 2009 | A1 |
20090094189 | Stephens | Apr 2009 | A1 |
20090100407 | Bouillet et al. | Apr 2009 | A1 |
20090106080 | Carrier et al. | Apr 2009 | A1 |
20090125977 | Chandler et al. | May 2009 | A1 |
20090144296 | Agrawal et al. | Jun 2009 | A1 |
20090150425 | Bedingfield, Sr. | Jun 2009 | A1 |
20090171708 | Bobak et al. | Jul 2009 | A1 |
20090177955 | Liu et al. | Jul 2009 | A1 |
20090177957 | Bouillet et al. | Jul 2009 | A1 |
20090198668 | Jean Bolf et al. | Aug 2009 | A1 |
20090198675 | Mihalik et al. | Aug 2009 | A1 |
20090199158 | Bolf et al. | Aug 2009 | A1 |
20090241015 | Bender et al. | Sep 2009 | A1 |
20090249370 | Liu et al. | Oct 2009 | A1 |
20090276753 | Bouillet et al. | Nov 2009 | A1 |
20100077386 | Akkiraju et al. | Mar 2010 | A1 |
20100106546 | Sproule | Apr 2010 | A1 |
20100281458 | Paladino et al. | Nov 2010 | A1 |
20110107273 | Ranganathan et al. | May 2011 | A1 |
20110314439 | Colgrave et al. | Dec 2011 | A1 |
Entry |
---|
The Amulet Environment: New Models for Effective User Interface Software Development, Myers, et al., IEEE Transactions on Software Engineering, vol. 23, No. 6, June 1997. |
Directed acyclic graph, Computing Dictionary, Dec. 7, 1994. |
Daniel H. Pink, “Folksonomy”, The New York Times, Published: Dec. 11, 2005. |
“Folksonomy” from Wikipedia, Oct. 5, 2007. |
D. Berardi, D. Calvanese, G.D. Giacomo, R. Hull, and M. Mecella, “Automatic composition of transition-based semantic web services with messaging”, In VLDB, 2005. |
F. Lecue and A. Leger, “A formal model for semantic web service composition”, In ISWC '06, 2006. |
S. Narayanan and S. McIlraith, “Simulation, verification and automated composition of web services”, In WWW, 2002. |
X.T. Nguyen, R. Kowalczyk, and M.T. Phan, “Modelling and solving QoS composition problem using Fuzzy DisCSP”, In ICWS, 2006. |
J. Pathak, S. Basu, and V. Honavar, “Modeling web services by iterative reformulation of functional and non-functional requirements”, In ICSOC, 2006. |
M. Pistore et al., “Automated synthesis of composite BPEL4WS web service”, In ICWS, 2005. |
R. Akkiraju et al., “Semaplan: Combining planning with semantic matching to achieve web service composition”, In ICWS, 2006. |
R. Berbner et al., “Heuristics for Q0S-aware web service composition”, In ICWS, 2006. |
A. Riabov and Z. Liu, “Planning for stream processing systems”, In AAAI, 2005. |
M. Sheshagiri, M. desJardins, and T. Finin, “A planner for composing services described in DAML-S”, In Web Services and Agent-based Engineering—AAMAS, 2003. |
K. Sivashanmugam, J. Miller, A. Sheth, and K. Verma, “Framework for semantic web process composition”, Special Issue of the Interl Journal of Electronic Commerce, 2003. |
Liu et al., “A planning Approach for Message-Oriented Semantic Web Service Composition”, 2007, Association for hte Advancement of Artificial Intelligence, pp. 1389-1394. |
Qui et al., “Semantic Web Services Composition Using AI planning of Description Logics”, 2006 IEEE, APSCC'06, pp. 1-8. |
Zhen Liu “Zhen Liu—Nokia Research Center”, pp. 1-5; downloaded Nov. 20, 2012; <research.nokia.com/people/zhen—liu>. |
Rajasekaran et al., “Enhancing Web Services Description and Discovery to Facilitate Composition”, 2005, Springer-Verlag, SWSWPC 2004, LNCS 3387, pp. 55-68. |
Battle et al., “Semantic Web Services Language (SWSL)”, W3C Member Submission, Sep. 9, 2005, W3C, pp. 1-41; <http://www.w3.org/Submission/SWSF-SWSL/>. |
Bouillet et al., “A Faceted Requirements-Driven Approach to Service Design and Composition”, 2008 IEEE Conference on Web Services, pp. 369-376. |
Sohrabi et al., “Composition of Flow-Based Applications with HTN Planning”, 2012, the 6th International Scheduling and Planning Applications woRKshop (SPARK), pp. 58-64. |
Bouillet et al., “MARIO: Middleware for Assembly and Deployment of Multi-platform Flow-Based Applications”, ACM, 2009 Springer-Verlag, pp. 1-7. |
P. Traverso and M. Pistore, “Automated composition of semantic web services into executable processes”, In ISWC'04. |
Eric Bouillet, Mark Feblowitz, Hanhua Feng, Zhen Liu, Anand Ranganathan, Anton Riabov, “A Folksonomy-Based Model of Web Services for Discovery and Automatic Composition”, In SCC, '08. |
Eric Bouillet, Mark Feblowitz, Zhen Liu, Anand Ranganathan, Anton Riabov, “A Tag-Based Approach for the Design and Composition of Information Processing Applications”, OOPSLA'08. |
Number | Date | Country | |
---|---|---|---|
20100095267 A1 | Apr 2010 | US |