text:
Generating a configuration of a system that satisfies constraints contained in models
To configure a system, models of corresponding components are provided, where the models contain constraints. The models specify that at least one of the components is composed of at least another one of the components. The models are input into a design tool. The design tool generates a configuration of the system that includes the components, wherein the generated configuration satisfies the constraints contained in the models.
Latest Hewlett Packard Patents:
A system (e.g., web server system, database system, storage server system, application server system, and so forth) is made up of various components, including hardware components and software components. Systems can be complex, with many inter-related components.
Depending on requirements (including user requirements, requirements specified by operators or administrators, and technical capabilities of components), there may be various possible design configurations of the various components, including hardware and software components, for a system. For example, a configuration of a particular system can be made up of several servers, software applications, and storage devices.
Of the many possible configurations for a particular system, some of the configurations may be invalid configurations. An invalid configuration refers to a combination of components that does not achieve target requirements. As systems have become more complex, creating or maintaining valid configurations has become more difficult. Maintaining a valid system configuration is a recurring task that depends on requirements that may change over time. As requirements change, a previously identified design configuration for the system may no longer be valid. Existing tools typically do not provide for efficient creation and/or maintenance of valid configurations of systems.
Some embodiments of the invention are described with respect to the following figures:
In some embodiments, the models 106 are based upon the Common Information Model (CIM) as provided by the Distributed Management Task Force, Inc. CIM provides an object-oriented class hierarchy that defines a hierarchy of classes (models) representing components. In one example embodiment, the class definitions for the models 106 extend the CIM_Policy class. However, in other embodiments, models according to other structures, whether proprietary or standardized, can be used to represent components of a system that is under design.
The models 108 also include constraints. The term "constraint" refers to any one or more of user requirements (requirements set by users of the tool 102 who are attempting to design a particular system), requirements set by administrators (e.g., network or system administrators), technical capabilities of components of a system under design, and any other condition that has to be satisfied. The attributes specified in a class definition represent respective characteristics of a component (or a sub-component of a component). For example, the attributes can represent a cost of the component, an operating speed of the component, a capacity of the component, and so forth. Constraints can be placed on the attributes of components. The relationships specified in a class definition refer to relationships between or among attributes of the components. In addition, the input 104 to the policy-based design tool 102 includes a user request 110 that requests a design of a particular system. Additional constraints can also be specified in the user request 110.
The models 106 can be provided to a pre-processor 112 in the policy-based design tool 102, which converts the models 106 (which can be according to the CIM Managed Object Format, for example) into the models 108 (which are in the format understood by the policy-based design tool 102). As discussed further below, constraints are embedded within the models 108 as statements (e.g., Satisfy statements) in the class definitions that represent the models 108.
The set of models 108 thus represents a set of related components. Each model contains one or more attributes along with relationships among those components. The constraints embedded in the models 108 and the user request 110, as well as the implicit constraints of the policy-based design tool 102, provide the policies that limit the values that may be taken by the attributes and/or relationships among components of the system. Implicit constraints are constraints that are implied from definitions of classes and/or from some aspects of the policy-based design tool 102. Example implicit constraints are discussed further below.
The policy-based design tool 102 treats the components of a system as resources that can be composed from other components (to provide a hierarchy of components). As components are composed to form other, higher-level components, the constraints specified in the models 108, in the user request 110, and implicitly by the design tool 102, have to be satisfied.
The policy-based design tool 102 receives the input 104 and creates a valid configuration for the system under design. A "configuration" of a system (which can be a hardware system and/or a software system) refers to a combination of components (and settings for those components). A valid configuration refers to a combination of components that satisfies specified constraints, which include constraints contained in the models 108, constraints specified in the user request 110, and constraints that are implicit within the policy-based design tool 102.
The policy-based design tool 102 also includes a translator 114 that receives the user request 110 and the models 108, and produces a formula 118 as input to a constraint satisfaction engine 116. In accordance with some embodiments, the formula 118 that is input to the constraint satisfaction engine 116 is a formula in first-order logic and linear arithmetic. In other embodiments, the translator 114 can translate the user request 110 and models 108 into other forms that are provided to the constraint satisfaction engine 116. The remaining elements of the constraint satisfaction engine 116 depicted in
The constraint satisfaction engine 116 then attempts to produce an instance of the design (configuration) that satisfies the specified constraints. In producing the design, the policy-based design tool 102 selects classes (specified by class definitions) that are to be used for satisfying the user request, fills in attributes values within the classes, and generates an ordered sequence of deployment activities (referred to as a workflow) that captures deployment dependencies between different classes. A class, as defined by a class definition, represents a corresponding one of the models 108. A workflow refers to a collection of activities or actions involving components of a system.
By using techniques according to some embodiments, a flexible and efficient mechanism is provided for designing configurations for systems. As constraints change over time, users can simply modify the policy constraints in the models 106, which are then converted into the models 108 provided to the policy-based design tool 102 to modify configurations according to the changed policies.
In addition to creating a configuration for a system under design, techniques according to some embodiments can be utilized for validating a configuration of an existing design to ensure that the configuration is valid (in other words, the existing configuration satisfies the various constraints mentioned above). To perform validation, the existing configuration is provided as an input to the policy-based design tool 102, which then checks each constraint to ensure that the existing configuration satisfies the constraint. Any violations of constraints are flagged and presented to a user.
In one embodiment, the user request 110 is in the form of a Main class that is composed of other classes, such that the policy-based design tool 102 produces as output an instance of the Main class, along with instances of other classes that make up the Main class, so that all specified and implicit constraints are satisfied. The instance of the Main class and instances of the classes making up the Main class provide a valid configuration of the system under design.
A class is represented as a structure type, which is a class name followed by a list of typed attributes (fields) that belong to that class. Thus, for example,
Server {
- cost: float;
- capacity: integer;
could represent a server (which is an example of a component of a system under design). Any instance S of this Server structure type has a cost attribute associated with it, which is referred to as "S.cost," a numeric value. The instance S also has an S.capacity attribute. As noted above, a component (represented as a structure type) can be composed of other components (represented by other structure types). For example, if the Server component is composed of a Computer component (representing a computer) and an Application component (representing a software application), then the Server structure type can have two additional fields as follows:
Server {
- cost: float;
- capacity: integer;
- comp: Computer;
- app: Application;
In the above, the Computer and Application structure types are also defined as class definitions with their own fields to represent corresponding attributes. In accordance with some embodiments, inheritance, such as Java-style inheritance, can be used for defining structure types as subtypes of other types. Thus, a structure type DataServer can be represented as follows:
DataServer extends Server {
- data: Database;
where every instance of the structure type DataServer will have all the elements of the Server structure type plus a Database field. Instead of using inheritance, the DataServer structure type can alternatively be represented as an independent structure type:
DataServer {
- cost: float;
- capacity: integer;
- comp: Computer;
- app: Application;
- data: Database;
Under either of the former definitions of the structure type DataServer, the one using inheritance or the one using an independent type, instances of the type DataServer would have the same fields. If an instance of DataServer is referred to as DS, then the instance DS of DataServer will have five fields as follows: DS.data (according to the Database structure type), DS.comp (according to the Computer structure type), DS.app (according to the Application structure type), DS.cost (which is a number), and DS.capacity (which is also a number).
In addition to defining DataServer as extending Server, other example definitions can be provided that extend Server, such as definitions for the subtypes AppServer and StorageServer as follows:
AppServer extends Server {
- . . .
StorageServer extends Server {
- . . .
Note that, in this example, an implicit constraint associated with the above definitions is that any given server according to the Server class cannot be both a DataServer and an AppServer, and cannot be both a DataServer and a StorageServer, and cannot be both an AppServer and a StorageServer. That is, any two subtypes of the same parent type have to be disjoint, and this disjointness is one example of an implicit constraint.
When the policy-based design tool 102 is successful on a design problem, the tool 102 produces, as its output, a collection of structures whose fields have defined values. In some implementations, the structures in this collection form a tree without sharing of substructures. For example, suppose that the tool 102 is asked to design a data center composed of two DataServers,
Main {
- s1: DataServer;
- s2: DataServer;
An instance of the structure type Main produced by the policy-based design tool 102 can be referred to as Main0, or some other name. In the above example, the instance Main0 assigns specific DataServer instances to the components Main0.s1 and Main0.s2, and assigns values also to the attributes of those two DataServers, so as to provide a valid configuration that satisfies the relevant constraints. In the above example, there is an implicit constraint that Main0.s1 and Main0.s2 are distinct instances of class DataServer.
In the example above, the instance Main0 of the structure type Main has the components Main0.s1 and Main0.s2, which are distinct DataServers. Also, based on the above definitions for DataServer, the structures of type Computer representing Main0.s1.comp and Main0.s2.comp are also distinct (another example of an implicit constraint).
The goal of the policy-based design tool 102 is to produce the structure Main0 of the type Main together with (recursively) all the other structures that Main0 is composed of, including the two DataServers and the components of those DataServers.
In addition, other relationships can be defined between structure types, including a reference relationship and an association relationship. The reference relationship allows a structure specified in a model to refer to another structure elsewhere in a tree of structures. By using the reference relationship, a first structure can coincide with a second structure elsewhere in the tree of structures, thereby effectively enabling sharing of the second structure.
The association relationship enables various different types of associations to be defined between at least two models (structure types). Examples of the different types of associations include many-to-many associations, many-to-one associations, one-to-many associations, and one-to-one associations.
As noted above, various constraints can constrain a system-design problem. In one embodiment, the policy-based design tool 120 encodes constraints as Satisfy statements embedded in the definition of a structure type. A Satisfy statement constrains all instances of that structure type as well as all instances of any of its subtypes. For example, the class definition of Server above can be augmented with constraints in two Satisfy statements, as follows:
Server {
- cost: float;
- comp: Computer;
- app: Application;
- Satisfy cost==comp.purchaseCost+
- app.licenseFee;
- Satisfy cost <=2000;
Here, it is assumed that each Computer component has a purchaseCost attribute and each Application component has a licenseFee attribute. In this case, the cost of the Server component is constrained to equal the sum of the purchase cost of the computer and the license fee for the application. In addition, the cost of the server is constrained not to exceed 2000.
In addition to specifying constraints in the class definitions (models), constraints can also be specified using Satisfy statements in the Main class (the user request), such as the following:
Main {
- myserver: Server;
- Satisfy myserver.cost <=1800;
- Satisfy myserver.capacity==2500;
In providing the input at 200, policy constraint instances are provided (at 202), and class definitions for models representing components of the system under design are provided (at 204).
Next, the policy constraint instances provided at 202 are embedded (at 206) into the class definitions provided at 204, such as in the form of Satisfy statements. The models provided at 206 can be in various formats, such as in the Managed Object Format (MOF) used within CIM. As noted above, the pre-processor 112 can translate the models 106 in those various formats into models 108 in the native format used by the policy-based design tool 102.
Next, a user request for designing a system is provided (at 208). As discussed above, the user request can be in the form of a Main structure. Tasks 202, 204, 206, and 208 are part of providing (at 200) the input 104 of
Once the input 104 has been provided, the user request and models can be submitted (at 210) to the policy-based design tool 102. The translator 114 in the policy-based design tool 102 translates (at 212) the user request into a formula in first-order logic and linear arithmetic, in accordance with an embodiment. The formula is a query ("original query"). The translator 114 basically combines the attributes, relationships, and constraints of the relevant models and user request for the design under consideration into the formula in first-order logic and linear arithmetic.
In some implementations, the formula (original query) passed to the constraint satisfaction engine 116 has Boolean operators at the outermost levels of its parse tree. In performing the translation to the formula, each field of a structure type, such as the structure types discussed above, is converted into a function that extracts the value of the field. For example, if the structure type Server has a field "cost:float;" then that field is modeled using a function Server_cost in the formula, where, for any structure S of type Server, the function application Server_cost(S) models the quantity S.cost. Similarly, if the structure type Server also has a field "comp:Computer;" then the function application S_comp(S) will model the quantity S.comp. Furthermore, the translator 114 will specify, in the formula it produces, that the function value Server_comp(S) is of type Computer. The formula provided by the translator 114 is in a dialect of first-order logic that includes equality, function symbols, and linear arithmetic. The overall formula from translator 114 also includes conjuncts specifying the implicit constraints, such as the constraint that the composition hierarchy of the design is a tree (in other words, that subcomponents are not shared).
Although reference is made to a specific type of formula above, it is noted that other types of formulas can be used in other embodiments.
Many different types of constraint satisfaction engines can be utilized, including as examples, constraint satisfaction engines described in Cormac Flanagan et al., "Theorem Proving Using Lazy Proof Explication," Proceedings 15th International Conference on Computer Aided Verification, pp. 355-367 (2003); and Cormac Flanagan et al., "An Explicating Theorem Power for Quantified Formulas," HPL Technical Reports HPL-2004-199 (2004).
In accordance with one embodiment of the constraint satisfaction engine 116, the original query (formula) is first projected or transformed (at 213) into a projected query 119 (
As depicted in
The SAT solver 120 in the constraint satisfaction engine 116 determines (at 214) whether or not the projected query is satisfiable. If not, then an output is provided (at 215) to indicate that the projected query (and thus the original query) is not satisfiable (128 in
In one example implementation, the original query that is passed to the constraint satisfaction engine 116 is made up of leaf formulas, which are formulas that involve equality, function applications, and arithmetic. The leaf formulas are converted to proxy variables in the projected query. The SAT solver's job is then to determine the truth or falsity of these proxy variables, in accordance with the Boolean operators at the outermost level of the parse tree. If this task proves to be impossible, the SAT solver 120 reports the projected query to be unsatisfiable, and hence the original query is also unsatisfiable.
On the other hand, if the SAT solver manages to satisfy the projected query, then the SAT solver returns (at 216) to the constraint satisfaction engine 116 a candidate propositional truth assignment (which assigns either "true" or "false" to each of the proxy variables so that the projected query is satisfied). In the example below, the proxy variables are L1, L2, L3, and L4, while the corresponding leaf formulas are provided on the right hand side of each colon after the proxy variable.
L1: x<=y
L2: y<=z
L3: z<=x
L4: f(x)=f(y)
The constraint satisfaction engine 116 next checks (at 218) the truth assignment by the SAT solver 120 using the domain experts 124 (
The domain experts 124 include a domain expert for arithmetic (more precisely, for rational linear arithmetic). The domain expert for rational linear arithmetic includes software code that understands the semantics of rational numbers and variables that range over the rational numbers. The domain expert for rational linear arithmetic understands addition and subtraction, and multiplication by a rational constant. Also, the domain expert for rational linear arithmetic also keeps track of whether arithmetic equalities and inequalities are satisfiable or not.
The domain expert for equality (more precisely, for equality with uninterpreted function symbols) understands the semantics of equality and understands that two applications of the same function whose corresponding arguments are equal yield equal results.
Other domain experts can also be used. If domain experts 124 detect (at 220) there are problems with truth assignment by the SAT solver 120 (in other words, the domain experts are unable to confirm the truth assignment), then the domain experts will encapsulate those problems as newly discovered Boolean constraints on the proxy variables. In the example above, the domain experts would augment (at 224) the projected query with the additional constraint that (L1 and L2 and L3)==>L4. The augmenting of the projected query by the domain experts 124 is depicted as 125 in
The domain experts 124 may augment the projected query as soon as a single problem is discovered. Alternatively, the domain experts 124 may work on the solution(s) provided by the SAT solver 120 for some amount of time to discover various problems that can potentially be distilled into augmenting clauses before deciding to return to the SAT solver 120 with the augmented projected query. A "clause" is a Boolean relationship among proxy variables. An example of a clause is as follows: (L1 and L2 and L3)==>L4.
In yet another implementation, the SAT solver 120 can provide partial solutions (rather than a complete solution) to the domain experts 124 to allow the domain experts to refute some partial assignment. Alternatively, the domain experts may offer guidance to the SAT solver by extending the current partial assignment (that is, by directly setting the truth assignment of proxy variables that were unassigned) or by supplying new clauses (possibly containing new proxy variables).
In a further alternative, instead of domain experts 124 supplying clauses to refute specific assignment proposed by the SAT solver 120, the domain experts 124 can instead supply clauses even before any assignment is provided by the SAT solver 120, which clauses are determined by the domain experts as clauses that are likely to steer the SAT solver 120 away from incorrect assignment.
Output is then generated (at 222) by the constraint satisfaction engine 116, which output represents the valid configuration that satisfies constraints specified in the original query. The output solution contains specific assignment of values to attributes of the components making up the system under design. For example, a multi-tier system (having several tiers of components such as web servers, application servers, database servers, etc.) can be designed, with attributes of the various components set to specific values and relationships between components selected. Also, workflow for the system can be defined. In the multi-tier system example above, one workflow constraint may be that the database servers has to be up and running before the application servers can be installed and configured.
As noted above, a workflow is an ordered sequence of deployment activities that captures deployment dependencies between different classes. The deployment activities can be modeled in a manner similar to resources (such as the components of a system under design referred to above). A model for an activity has one or more attributes that can specify when an activity is to be performed. In one example, the one or more attributes of an activity model can specify a start time (or date), an end time (or date), and a duration. The activity model can also specify (by use of one or more constraints) whether there is a deadline associated with the activity.
As with the ability to compose one component of a system under design from other components, one activity can also be composed from other activities. Each activity model can be associated with post-conditions and pre-conditions, which post and pre-conditions can be used to define a sequence of activities for a workflow.
A model for a particular component of a system under design can include constraints that specify associations between activities and between an activity and the component. As a result of constraint satisfaction, a set of components for a system under design are selected along with a set of activities (and their associated sequence to define a workflow).
By using the policy-based design tool 102 according to some embodiments, various benefits may be realized. Constraint specification is made easier by allowing users and/or administrators to specify the constraints in a hierarchical and distributed manner. Updating components is made easer (by adding or modifying respective class definitions). If a particular constraint is modified, then a new set of attribute values can be automatically computed by the design tool 102 under which the configuration meets all constraints. Also, new components can be also be easily added by adding new class definitions. In addition, by using the policy-based design tool 102, a user (system designer) does not have to be concerned about how to specifically compose system.
The following provides an example input and output of the policy-based design tool 102. The following are example class definitions:
Resource {
cost: float;
Computer extends Resource {
kind: String; //Brand of hardware
megs: int; //Amount of memory
os: String; //Operating system
Satisfy kind \in {"Acme," "Brand_X};
Satisfy kind=="Acme"==>cost==1200+megs;
Satisfy kind=="Brand_X"==>cost==800+2*megs;
Satisfy os \in {"Archways," "Barndoors"};
Satisfy kind=="Brand_X"==>os=="Barndoors;"
Application extends Resource {
kind: String;
Satisfy kind \in {"Able," "Baker"};
Satisfy kind=="Able"==>cost==300;
Satisfy kind=="Baker"==>cost==0;
Server extends Resource {
comp: Computer;
app: Application;
capacity: float;
Satisfy cost==comp.cost+app.cost;
Satisfy app.kind=="Able"==>capacity==comp.megs*10;
Satisfy app.kind =="Baker"==>capacity==comp.megs*5;
Satisfy app.kind =="Able"==>comp.os=="Archways;"
In the above example, the Resource class represents a low-level component that is associated with an attribute cost. The Computer, Application, and Server class definitions inherit from the Resource class. Each of the computer, application, and server classes above defines respective attributes, as well as policy constraints in the form of Satisfy statements.
In addition, below is an example user request in the form of a Main structure type:
Main {
- myserver: Server;
- Satisfy myserver.cost<=1800;
- Satisfy myserver.capacity==2500;
The example Main user request is submitted to design a server (according to the Server class). After submitting the class definitions and user request to the policy-based design tool 102, an output solution (130 in
%% startup
%% assignment
$0: Main {
- server=$1: Server {
- cost=1700;
- comp=$2: Computer {
- cost=1700;
- kind="Acme";
- megs=500;
- os="Archways";
- };
- app=$3: Application {
- cost=0;
- kind="Baker";
- };
- capacity=2500;
- };
- server=$1: Server {
%% assignment warnings
%% end
In the output, Main.Server has an identifier $1, Main.Server.Comp (which represents the computer in the server) has an identifier $2, and Main.Server.App (which is the software application in the server) has an identifier $3. Note also that the various attributes of the various components are assigned specific values. The output above is an example configuration of a system that satisfies policy constraints.
As discussed further above, the policy-based design tool 102 supports composition and inheritance in class definitions for models that represent components of systems under design. The policy-based design tool 102, according to some implementations, can also support the following features.
The policy-based design tool 102 can support ranges of integers and user-specified enumerated types. Thus,
enum ServerType {itanium, x86};
TypedServer {
- Id: 0 . . . 50;
- serverType: ServerType;
specifies that Id is an integer in the range [0,50], and that serverType is an enumerated field that can contain either the value "itanium" or "x86".
To provide enhanced flexibility, the policy-based design tool 102 can also support array types, group operators, references, and associations. An array type allows instances of components to be referred to in an array format, such as the following:
DataCenter {
- serv: DataServer[12];
- Satisfy serv[7].cost<=1500;
In the above example, if DC is an instance of the DataCenter structure type, then DC.serv denotes an array of 12 DataServer instances. The entries in this array are referred to as DC.serv[0] through DC.serv[11].
Group operators can also be specified, such as gand (group AND), gor (group OR), and gadd (group ADD). For example, the following Satisfy statement:
Satisfy gand (i, serv, serv[i].cost<=1750);
specifies that each of the DataServer instances in the array "serv" should have a cost of at most 1750. The operator gand (group AND) thus forms a conjunction over the entries of an array. The gor (group OR) operator similarly forms a disjunction over the entries of an array, while the gadd (group ADD) operator forms such a sum. Generally, a group operator is provided as part of a constraint in a class definition and specifies a logical condition that applies to plural instances of a particular class; in the above "gand" example, the plural DataServer instances should have a cost less than or equal to 1750. Alternatively, the logical condition can be a logical OR condition that applies to the plural instances.
References are also supported by the policy-based design tool 102 to allow structures to refer to other structures within a tree of components, such as the tree of components of the Main structure. As an example, consider the following definition:
DataCenter {
- serv: DataServer[..12];
- manager: ref DataServer;
(Because the length of the array "serv" is given as "..12", rather than simply "12", that array may have any length from 0 through 12).
If DC is an instance of the DataCenter structure type, then DC.manager is an instance of the DataServer structure type. However, since manager is defined as a ref type (reference type), DC.manager can coincide with a DataServer that exists elsewhere in the instance of Main. For example, DC.manager can equal DC.serv[i] for some i. This type of sharing can be expressly specified using the following example constraint:
Satisfy gor(i, serv, manager ==serv[i]);
Arrays of refs are also possible, in accordance with some implementations. For example, a manager task can be distributed across two of multiple DataServer instances, as follows:
DataCenter {
- serv: DataServer[..12];
- manager: (ref DataServer)[2];
- Satisfy gand(i, manager, gor(j, serv, manager[i]==serv[j]));
- Satisfy manager[0] !=manager[1];
In the foregoing example, the two "manager" components are chosen from among the up-to-12 possible DataServer instances (as specified by the first Satisfy statement). The second Satisfy statement ensures that the two manager components are distinct.
Associations between different structure types can also be defined, such as a many-to-many association between the structure types Database and Disk (as examples). This many-to-many association between the types Database and Disk specifies which disks can potentially store data from which databases. In one example, assuming that every database stores data on somewhere between 2 and 100 disks, while every disk stores data from somewhere between 0 and 10 databases, the following definitions of Database and Disk can be provided:
Database {
- disks: (ref Disk)[.100];
- Satisfy disks.length>=2;
- Satisfy gand(i, disks, gand(j, disks, disks[i]==disks[j]==>i==j));
Satisfy gand(i, disks, gor(j, disks[i].bases, disks[i].bases[i]==this));
Disk {
- bases: (ref Database)[..10];
- Satisfy gand(i, bases, gand(j), bases, bases[i]==bases[j]==>i==j));
Satisfy gand(i, bases, gor(j, bases[i].disks, bases[i].disks[j]==this));
In the Database class definition, the array "disks" includes up to 100 references to instances of the Disk structure type. Also, the constraint "Satisfy disks.length >=2" specifies that each database has to be stored on two or more disks. The nested gand (group AND) constraint (Satisfy constraint with two gands) ensures that the references in the array "disks" refer to distinct structures of type Disk, to avoid (for example) the situation where B.disks[0] coincides with B.disks[1], and hence that single disk is counted twice as storing portions of the Database B. The last constraint (last Satisfy statement in the Database definition) is a gand of a gor, which ensures that the two ends of the association (in this case Database and Disk) agree about which pairs of structures are associated. In other words, if database B specifies that database B is stored on disk D, then disk D has to agree that database B is one of the databases that disk D stores. In the last Satisfy statement, the special token "this" is used to refer to the containing object (as in Java, for example).
The "ref" clause and Satisfy statements of the Disk definition are analogous to the corresponding clauses in the Database definition. As noted above, the two definitions above provide an example of a many-to-many association between different structure types. Another type of association that can be specified is many-to-one. For example, a server may run many jobs, but each job is assigned to just one server (many jobs to one server association). An example definition that provides for such a many-to-one association is provided below:
Job {
- myserver: ref Server;
- Satisfy gor(i, myServer.myJobs, myServer.myJobs[i]==this);
Server {
- myjobs: (ref Job)[..50];
- Satisfy gand(i, myJobs,
- gand(j, myJobs, myjobs[i]==myJobs[j]==>i==>j));
- Satisfy gand(i, myjobs, myJobs[i].server==this);
In the example above, the Job definition makes reference to just one server (myServer) of structure type Server (rather than making reference to multiple servers), since each job can run on just one server in this example. Note that, for this many-to-one association, the last Satisfy statement of the Server definition includes just a gand, rather than a gand of a gor.
Another type of association is a one-to-one association, such as where one server can execute just one job, and one job can run on just one server. The following is an example of such a one-to-one association:
Job {
- . . .
- myServer: ref Server;
- Satisfy myServer.myJob==this;
Server {
- . . .
- myJob: ref Job;
- Satisfy myJob.myServer ==this;
Instructions of software described above (including the pre-processor 112, translator 114, and constraint satisfaction engine 116 in
Data and instructions (of the software) are stored in respective storage devices, which are implemented as one or more computer-readable or computer-usable storage media. The storage media include different forms of memory including semiconductor memory devices such as dynamic or static random access memories (DRAMs or SRAMs), erasable and programmable read-only memories (EPROMs), electrically erasable and programmable read-only memories (EEPROMs) and flash memories; magnetic disks such as fixed, floppy and removable disks; other magnetic media including tape; and optical media such as compact disks (CDs) or digital video disks (DVDs).
In the foregoing description, numerous details are set forth to provide an understanding of the present invention. However, it will be understood by those skilled in the art that the present invention may be practiced without these details. While the invention has been disclosed with respect to a limited number of embodiments, those skilled in the art will appreciate numerous modifications and variations therefrom. It is intended that the appended claims cover such modifications and variations as fall within the true spirit and scope of the invention.
1. A method of configuring a system, comprising:
- providing models of corresponding components, wherein the models contain constraints, wherein the models specify that at least one of the components is composed of at least another one of the components, and wherein at least one of the models specifies a structure that refers to another structure in a collection of the components;
- inputting the models into a design tool executing in a computer; and
- generating, by the design tool executing in the computer, a configuration of the system that includes the components, wherein the generated configuration satisfies the constraints contained in the models.
2. The method of claim 1, wherein providing the models further comprises specifying an association between at least two of the models.
3. The method of claim 2, wherein specifying the association between the at least two models comprises specifying one of a many-to-many association, many-to-one association, and one-to-many association.
4. The method of claim 3, wherein the at least two models comprise a first model and a second model, and wherein the first model contains a structure that refers to a structure of the second model, and the second model contains a structure that refers to a structure of the first model.
5. The method of claim 2, wherein specifying the association between the at least two models uses constraints that include at least one of group AND and group OR operators.
6. The method of claim 1, wherein providing the models comprises providing respective class definitions that include statements specifying corresponding constraints.
7. The method of claim 1, further comprising providing a request to design the system to the design tool.
8. The method of claim 7, further comprising translating, using the design tool, the models and request into a formula in first order logic.
9. The method of claim 8, further comprising invoking a constraint satisfaction engine in the design tool to solve the formula.
10. The method of claim 1, wherein the design tool is associated with at least one implicit constraint in addition to the constraints of the models, and wherein generating the configuration of the system comprises generating the configuration that also satisfies the implicit constraint.
11. The method of claim 1, wherein providing the models comprises providing the models associated with corresponding attributes, and wherein generating the configuration comprises assigning specific values to the attributes.
12. The method of claim 1, wherein providing the models comprises providing models in an object-oriented class hierarchy.
13. The method of claim 1, wherein generating the configuration comprises generating a workflow that specifies at least one action relating to one or more of the components of the system.
14. The method of claim 1, wherein the design tool comprises a satisfiability solver and at least one domain expert, the method further comprising;
- using the satisfiability solver to solve an input query to produce a solution for the configuration;
- using the at least one domain expert to check the solution; and
- the at least one domain expert returning an indication of an incorrect assignment in the solution.
15. The method of claim 14, further comprising:
- augmenting the input query in response to the incorrect assignment; and
- re-solving the augmented query by the satisfiability solver to produce a solution.
16. The method of claim 1, wherein generating the configuration comprises generating the configuration that includes a combination of the components and settings for the components.
17. The method of claim 1, wherein a first of the models specifies that a first of the components is composed of a second of the components, and a second of the models specifies that a third of the components is composed of a fourth of the components.
18. The method of claim 1, wherein a first of the models specifies that a first of the components is composed of a second of the components by using inheritance.
19. A computer-readable storage medium that when executed cause a computer to:
- provide models of corresponding components, wherein the models contain constraints, wherein the models specify a first relationship in which at least one of the components is composed of at least another one of the components, and wherein the models specify a second relationship among components in addition to the first relationship, wherein the second relationship comprises at least one of a reference relationship and an association relationship;
- input the models into a design tool; and
- invoke the design tool to generate a configuration of the system that includes the components, wherein the generated configuration satisfies the constraints contained in the models.
20. The computer-readable storage medium of claim 19, wherein at least one of the models contains a structure having an array type.
21. The computer-readable storage medium of claim 19, wherein the design tool comprises a satisfiability solver and at least one domain expert, wherein the instructions when executed cause the computer to further:
- use the satisfiability solver to solve an input query to produce a solution for the configuration;
- use the at least one domain expert to check the solution; and
- cause the at least one domain expert to return an indication of an incorrect assignment in the solution.
22. The computer-readable storage medium of claim 19, wherein generating the configuration comprises generating the configuration that includes a combination of the components and settings for the components.
23. The computer-readable storage medium of claim 19, wherein a first of the models specifies that a first of the components is composed of a second of the components, and a second of the models specifies that a third of the components is composed of a fourth of the components.
Referenced Cited
U.S. Patent Documents
|October 20, 1998
|Cagan et al.
|January 2, 2007
|Ip et al.
|November 6, 2003
|Singhal et al.
|October 13, 2005
|Santos et al.
|December 1, 2005
|Kuno et al.
|May 29, 2008
|Majumder et al.
|January 1, 2009
|Martin et al.
Other references
- J.B. Saxe et al., Cauldron, p. 1 (2005).
- A. Sahai et al., "Automated Policy-Based Resource Construction in Utility Computing Environments," pp. 1-19 (2004).
- C. Flanagan et al., "An Explicating Theorem Prover for Quantified Formulas," pp. 1-15 (2004).
- L. Ramshaw et al., "Cauldron: A Policy-based Design Tool," pp. 1-10 (Jul. 2006).
- R. Raman et al., "Matchmaking: Distributed Resource Management for High Throughput Computing," pp. 1-7 (1998).
- S. Singhal et al., "Quatermaster—A Resource Utility System," pp. 1-12 (2004).
- A. Felfernig et al., "UML as Domain Specific Language for the Construction of Knowledge-Based Configuration Systems," International Journal of Software Engineering and Knowledge Engineering, vol. 10, No. 4, pp. 449-469 (2000).
- C. Flanagan et al., "Theorem Proving Using Lazy Proof Explication," CAV 2003, LNCS 2725, pp. 355-367 (2003).
Patent History
Type: Grant
Filed: Jan 31, 2007
Date of Patent: Jan 5, 2010
Assignee: Hewlett-Packard Development Company, L.P. (Houston, TX)
Inventors: James B. Saxe (Palo Alto, CA), Akhil Sahai (Santa Clara, CA), Sharad Singhal (Belmont, CA), Lyle H. Ramshaw (Palo Alto, CA)
Primary Examiner: Stacy A Whitmore
Assistant Examiner: Magid Y Dimyan
Application Number: 11/700,374
International Classification: G06F 17/50 (20060101);


text:
To reach the goal of phase 2, the person should avoid all table salt and avoid adding any salt to cooking. We tend to get more than the recommended amount of sodium when we eat packaged or processed foods or when eating or dining out. Salt is the major source of sodium in the diet, and we can usually refer to the two words interchangeably unless we are discussing specific biochemical processes.
DASH stands for Dietary Approaches to Stop Hypertension. The DASH diet is a lifelong approach to healthy eating that's designed to help treat or prevent high blood pressure (hypertension). The DASH diet encourages you to reduce the sodium in your diet and eat a variety of foods rich in nutrients that help lower blood pressure, such as potassium, calcium and magnesium.
After I purchased the South Beach Diet book I lost 25 pounds in 45 days. It surprised me too. My doc asked me if I was starving myself. I told him and another doc that i was just following the book's advice. Mostly eggs and meat to start. Got to get that protein. I also drank Ensure high protein drinks. The book came after two doctors recommended it. I'm way thru the first phase and now I can eat other foods and still eat out. I mostly have given up the bread and baked potatoes.
This show needs serious writing improvement, the use of the F-bonb and other language is too much! Drew Barrymore shame on you as a producerThis show needs serious writing improvement, the use of the F-bonb and other language is too much! Drew Barrymore shame on you as a producer and not instill better writing for the show. Being creative and actually writing more than F-bombs, etc.-takes talent. Clean it up and get some talented writers!… Expand
I am SO thankful that healthy lifestyle alternatives are adamantly mentioned in this article. I feel that the military diet is more of a tagline or "attention getter" and does not full give the the results that people are assuming they'll receive. I feel that this method would get rid of bloat and excess water weight far before it would get rid of body fat, and the amount of fat lost will be gained back immediately upon return to a "normal diet". While this may help a dieter become more familiar with portion control, I feel like the military diet grabs the attention of new/crash dieters more than experienced dieters that are looking for a healthy lifestyle.
The Hammonds—husband Joel (Timothy Olyphant), wife Sheila (Drew Barrymore), and daughter Abby (Liv Hewson)—are a typical middle-class family living in suburban Santa Clarita, with Joel and Sheila working as real-estate agents for the same firm. While showing a house to potential buyers, Sheila throws up a great deal of vomit and a strange red ball of flesh. This causes them to lose the house's listing to their co-worker, the sleazy Gary West (Nathan Fillion). After vomiting, however, Sheila begins to show changes to her personality, becoming bolder and more impulsive. She exhibits physical changes as well, such as the lack of a heartbeat, thickening blood, and a strong craving for raw meat. Their neighbor's son Eric (Skyler Gisondo) suggests that Sheila may have become a zombie, a fact the family soon confirms. The Hammonds now face the challenge of having to keep Sheila fed on human flesh without alerting the authorities, especially their cop neighbors.
^ Jump up to: a b c Appel, Lawrence J; Moore, Thomas J; Obarzanek, Eva; Vollmer, William; Svetkey, Laura; Sacks, Frank; Bray, George; Vogt, Thomas; et al. (1997-04-17). "A Clinical Trial of the Effects of Dietary Patterns on Blood Pressure". The New England Journal of Medicine. Massachusetts Medical Society. 336 (16): 1117–1124. doi:10.1056/NEJM199704173361601. ISSN 0028-4793. PMID 9099655.
Research has shown the Maitake mushroom (Grifola frondosa) has a hypoglycemic effect and may be beneficial for the management of diabetes.[42][43][44][45][46][47] Maitake lowers blood sugar because the mushroom naturally acts as an alpha glucosidase inhibitor.[48] Other mushrooms like lingzhi,[49][50] Agaricus blazei,[51][52][53][54] Agrocybe cylindracea[55] and Cordyceps[56][57][58][59][60] have been noted to lower blood sugar levels to a certain extent, although the mechanism is currently unknown.
Pared down from the original two weeks to just seven days—a change made in 2017—Phase 1 is meant to jump-start your weight loss. The idea is to "transform your metabolism" with meals that are high in lean protein and low in carbs. At the same time, you begin to lose your cravings for sugar and refined starches—the same kinds of foods that may have piled on the pounds in the first place.
I was going through some photos on our Ipad one day and I thought to myself, "Oh my . . . who is that lady sitting on our couch?" Looking closer, I realized it was ME! It was heartbreaking that I didn't even recognize myself. My three year old son had candidly taken a picture of me that evening. I'm so glad he did because that was the turning point for me. I had to do something. Only I can change this, right?
If you don't eat meat — or any animal products, for that matter — or if you have a food allergy, you can replace anything on the meal plan with foods that have a similar calorie count and provide the same nutrients. For example, instead of eating half a cup of tuna, you can eat about 2/3 cup of tofu. Instead of eating an egg at breakfast, you can drink a cup of soy milk. On day two of the military diet, cottage cheese substitution ideas include 15-20 almonds. Almonds work to sub out the slice of cheddar cheese, too. And instead of peanut butter, you can spread almond butter or sunflower butter on your toast for breakfast of day one.
On the South Beach Diet, you get to that point in three phases, the first of which involves a cutthroat elimination of all carbs for two weeks. White rice and baked goods were out, of course, but so were natural, healthy-for-you sources like fruits. The book says the process is meant to help a person rid herself of sugar cravings and also initiate "early rapid weight loss" to inspire the person to stick with it. The second phase includes the slow reintroduction of foods like whole grains until the person's goal weight is reached, while the third phase is when the diet has become a lifestyle that helps her maintain that weight.
Almonds, sunflower seeds, lentils and other foods in this family are good sources of magnesium, potassium and protein. However, these foods are high in calories so DASH keeps serving sizes small and recommends that they are consumed weekly. Examples of one serving include 1/3 cup (1 1/2 oz.) nuts, 2 tablespoons seeds, or 1/2 cup cooked beans or peas.
DASH stands for Dietary Approaches to Stop Hypertension – it's a lifelong approach to healthy eating designed to prevent and treat high blood pressure. Forget tiny portions, juice fasts or the cabbage soup diet – DASH simply encourages you to be smarter about what you're eating. The plan is super easy to adopt – and with a few healthy adjustments, you could lower your blood pressure in no time!
Aaron Bady at The Los Angeles Review of Books argues that Santa Clarita Diet is unconsciously conservative and default pro-Trump because it's apolitical: "This suburban show wants to exist in a world without politics, without a larger frame of reference than the home life of a suburban family, their suburban neighbors, and their workplace selling suburban homes to other suburban families." It's true that in 2018, setting a sitcom in suburbia isn't likely to be a radical or relevant political statement. But even so, Bady misses the anti-Trump political subtext of making zombies lovable.
We also know that the Military Diet is not associated with the armed forces in any way, says Roland Paquette, PA-C, an assistant professor in physician assistant studies at UT Health San Antonio. A former Green Beret who served in the United States Special Forces from 2004 to 2006, Paquette tells MensHealth.com that the army did not institute a specific diet to get cadets into shape.
Joel and Eric head to a paranormal convention to meet Anton, a popular and mysterious figure in the paranormal community, who claims to have an ancient book containing the cure for Sheila's condition. Anton accuses Joel of being a government agent, and when confronted later, admits he is a fraud and does not have the book; however, Joel is approached by another attendee, who puts him in touch with the book's real owner, Dr. Cora Wolf. Meanwhile, Sheila tries to bond with Abby, as the two try to get her money back from the brother of the deceased chop shop owner.

subset: commoncrawl


text:
If you love kids, sign up for Care.com or SitterCity to spend a few hours a week babysitting. These websites verify both babysitters and those seeking sitters with background checks, so you can ensure you're conversing with a reliable source. Babysitting rates vary based on years of experience, number of children, and hours per week. According to ZipRecruiter, the average hourly rate for a babysitter is $28. Use Care.com's calculator to plug in your experience and find out how much your should be making an hour as a babysitter.
What's the authority of your website or webpage, or any other page on the internet for that matter where you're attempting to gain visibility? Authority is an important component of trust, and it relies heavily on quality links coming from websites that Google already trusts. Authority largely relates to the off-page optimization discipline of SEO that occurs away from the webpage as opposed to the on-page optimization that occurs directly on the webpage.
When beginning your affiliate marketing career, you'll want to cultivate an audience that has very specific interests. This allows you to tailor your affiliate campaigns to that niche, increasing the likelihood that you'll convert. By establishing yourself as an expert in one area instead of promoting a large array of products, you'll be able to market to the people most likely to buy the product.
Etsy: While Etsy's popularity has declined recently, it's still a great resource for selling handmade items online. No need for complex ecommerce sites or merchant accounts or any sort of automation. The company takes a commission of every sale and charges a small listing fee per item. But many still use Etsy as their primary source of income. The best part is that you can also sell digital products on here such as poster designs.
Solvid uses reasonable efforts to provide these services to you; however, all services provided depend on innumerable factors and market variables that are outside of our direct control. For these reasons, all services offered are not guaranteed and are offered "as-is". Where you decide to use any services offered by Solvid, you agree that we make no guarantees including but not limited to article placement, rankings, or any profits. You understand that the services offered may have variance, be inexact, cause negative effects, or be otherwise incorrect. An increase in search engine ranking, increase in business, or any other associated benefits are neither implied nor guaranteed. Website rankings or results may vary by region, search engine, or fluctuate based on factors outside of our control. Due to the nature of our services, you agree:
Of the many key reasons these sites are so massively successful, one stands out in particular: they are genuinely helpful to their visitors. When you need to renew your car insurance, do you seriously go filling in forms on every individual provider's website, or do you instead just fill in the one form on a site like Comparethemarket to get all the quotes you need at once? If you think about the answer honestly, you'll realise exactly why comparison websites like this are so genuinely useful to a visitor.
For the publisher, FlexOffers provides benefits such as a detailed dashboard that visualizes the success of various campaigns. The platform generates reports that update within the hour and offers news updates on what's happening in the platform. It claims to add nearly 50 new advertiser programs per day, meaning affiliates are never running stale on options to generate income.
The music industry might not be as strong as it was in the 80s, but there are still plenty of ways to make money online as a musician. Sites like SoundBetter let you sell your services as a songwriter, producer, or session musician to thousands of customers a month. While Musicbed, Music Vine, Marmoset, and SongFreedom are perfect for licensing your music to TV shows, movies, and web series.
Companies need people with all different levels of technical ability to test out their websites, apps and social media offerings. Sign up with one of these website usability testing companies and take on quick jobs surfing the web and playing with new apps. It's not a career, but it is an easy way to make extra money from home. The only thing to keep in mind is that this won't likely be a steady gig, just occasional. Learn more about website testing.
FGM Internet Marketing, LLC is a digital marketing and web design company based in Columbia, SC. We have over a decade's worth of experience working on local, national and international online marketing campaigns, but our passion is helping local businesses grow. FGM Internet Marketing's suite of online marketing channels will make your business more visible on the web, increase traffic to your website, and convert this into leads and sales.
Win-win-win. The advertiser wins because they only pay when a purchase is made (as opposed to the shotgun approach of paying to advertise to the masses and waiting for a small percentage to actually buy). The affiliate wins because they make money while providing helpful advice. The customer wins because they get a trusted recommendation for something they might not otherwise have known about.
Most companies that hire for search engine evaluation have multiple projects available to work on, so the exact work you do might vary. However, search engine evaluation in the traditional sense involves analyzing queries that regular people like you and me might type into Google or Bing search and then determining the best possible results to match up to that query so that users have the best experience possible using a search engine.
What these opportunities typically turn up to be is a pyramid scheme. You pay a fee to signup. You then receive a flyer saying how great stuffing envelopes is and list of names and addresses to mail said flyer. IF those people pay that signup fee so they can mail that flyer too, you get paid a small referral fee. ONLY if they take the bait do you get paid.
What It Is: Think Mary Kay (cosmetics), Pampered Chef (kitchenware), or Rodan + Fields (skincare) — over time, you build a base of clients to whom you sell a company's wares. "There are several reasons why I decided to become a consultant," says Rodan + Fields independent consultant Debbie Royer. "I had seen how much of a blessing the business had been to a friend of mine and my sister-in-law. Plus, everything can be done from my phone, and being a mom to a preschooler and an infant I don't have a lot of extra time to be sitting at a computer."
Mechanical Turk: Amazon's Mechanical Turk is a resource for doing human-intelligence tasks, or as the site commonly refers to them, HITs. You get paid a very small fee for any given HIT and you'll need a good deal of volume to make a substantial amount of money. But it is a resource you can use in your spare time to generate a small income online.
Now, if you don't know people who might want your coaching services, there are a number of online tools and communities that make it incredibly easy to find clients and teach, on just about any topic area you can think of. Community driven platforms like Savvy.is, Clarity.fm, and Coach.me provide you with a network of potential clients to interact with, as well an integrated payment solution.
You can't find a better place to write online than About.com. People who write for About.com are experts in the topic they write about and just about every subject you can imagine is covered here. Whether you love container gardening or you're a hardcore Android programmer, About.com is full of information that makes the site and its writers an authority readers trust.
Cross-platform measurement: The number of marketing channels continues to expand, as measurement practices are growing in complexity. A cross-platform view must be used to unify audience measurement and media planning. Market researchers need to understand how the Omni-channel affects consumer's behaviour, although when advertisements are on a consumer's device this does not get measured. Significant aspects to cross-platform measurement involves de-duplication and understanding that you have reached an incremental level with another platform, rather than delivering more impressions against people that have previously been reached (Whiteside, 2016).[42] An example is 'ESPN and comScore partnered on Project Blueprint discovering the sports broadcaster achieved a 21% increase in unduplicated daily reach thanks to digital advertising' (Whiteside, 2016).[42] Television and radio industries are the electronic media, which competes with digital and other technological advertising. Yet television advertising is not directly competing with online digital advertising due to being able to cross platform with digital technology. Radio also gains power through cross platforms, in online streaming content. Television and radio continue to persuade and affect the audience, across multiple platforms (Fill, Hughes, & De Franceso, 2013).[45]
The first follows the startup path we outlined above: You have a disruptive idea for an app or piece of software, you validate the idea with real customers, and then raise money to hire developers or a development studio to build, launch, and scale your software. If you've done everything right, your software will be accepted to the Apple and Google Stores and you'll make money every time someone downloads it or pays for a premium feature.
It's an excellent opportunity to offer technical training courses that teach people how to learn a much-needed skill, or accomplish an important task. It could also prove to be an important testing ground for your educational courses. If you are able to market your course on the site, against direct competition, you may be able to direct marketing to the general public, using a website, videos, or even an affiliate marketing program.
With a wide variety of work, there's a wide variety of pay. The average hourly wage for financial service jobs is around $31. The geographical location of the financial institution and the employee's role will play a part in determining this figure. The average annual salary for work from home financial service jobs according to ZipRecruiter is $65,483.
Test websites. Remote usability testing means getting paid to navigate a website for the first time and giving feedback to the website owner. Most tests take approximately 15 minutes, and you can get paid up to $10 for each test. A test involves performing a scenario on the client's website and recording yourself doing it. For example, you might be asked to go through the process of selecting and purchasing an item on a retailer's website.[1]
Some businesses may be interested in adding other types of paid content to your website. This could include videos, podcasts, or any other material that would work with your site and help a business market itself. Always make sure that paid content isn't too promotional. It needs to add value to your audience first and foremost, and not just present as an advert.
If you've got expertise in a certain area, package up your knowledge into an online course and sell it. This has become a very popular business model for online entrepreneurs over the past several years. The two big websites that are used to sell online courses are Udemy and Teachable. Check out this awesome article by Regina on How to Create an Online Course that Sells.
According to HowStuffWorks, "Affiliate programs, also called associate programs, are arrangements in which an online merchant website pays affiliate websites a commission to send it traffic. These affiliate websites post links to the merchant site and are paid according to a particular agreement. This agreement is usually based on the number of people the affiliate sends to the merchant's site or the number of people they send who buy something or perform some other action.
Location. The most successful bed and breakfasts are those that are convenient to airports, historic parts of town, or other tourist attractions. That's because there are two types of guests who tend to frequent B&B's: business travelers who are tired of sterile hotel rooms, and families looking for a unique experience. That's not to say that you can't develop a successful B&B if your home isn't located in the perfect spot, but you might have to work harder to make it a success if it isn't.
In the BigCommerce affiliate program, you receive a 200% bounty per referral and $1,500 per Enterprise referral, with no cap on commissions. Plus, the more referrals you drive through the program, the higher your commission tier will go. BigCommerce uses an industry leading 90-day cookie, so you will receive credit for up to three months for the referrals you generate. Also, there are no obligations or minimum commitments to join the program.
Research selling prices of items similar to yours. Look up completed sales or current listings of items similar to yours. Find the high- and low-end prices, and price your object around the median price level. If you want your item to sell quickly, price it at the low end. The condition of the item also affects the price. Items in poorer condition should be priced at the lower end. Also, consider how many listings there already are of items similar to yours. If many similar items will be competing with yours, you may have to set the price lower to get the sale.[28]
We've found the perfect services to offer our clients and the perfect size of our team to offer those services. For the past five years, I've capped the size of IMN at around 48-50 employees. With our size being capped, I've also capped the work each department can perform to ensure our quality. Because of services being capped, sometimes, you may find that we have a waiting list for some services. If you have to wait, know that it's worth the wait, knowing that you will get our best work.
When creating a membership site, always offer different plans and pricing tiers to appeal to your different categories of audience. Access to specific types of content is then dependent on the plan selected by a member. Membership fees can be a one-off payment or a repeat subscription. And you can even sell products on your membership site to boost your income.
Pro tip for first-timers: Carefully consider the pay rates that are listed. Penny Hoarder Carson Kohler has used the platform to find freelance writing gigs, and she reports low rates — like $3 for 500 written words. It's probably not worth it. (And, yes, you'll have to scroll through a whole lot of these low-paying listings to find the good ones.)
What does that mean for you? It means Nielsen will pay you $50 a year to keep their app on your favorite internet browsing device. The app itself collects statistics on your internet usage anonymously, so you never have to worry about any data being linked to you. And the best part is, the app takes up barely any space and doesn't slow down your phone or tablet at all!
Better yet, you can even upload your own book to one of the world's largest book sellers: Amazon. With Amazon self-publishing, you set the price, retain the rights to your book, and get access to Amazon's massive audience. For every sale, you keep 70% with Amazon taking the remainder as a fee. If you want to get started, check out Leslie Samuel's great guide to selling eBooks online or follow Tara Gentile on CreativeLive as she shows you how to use your existing body of work to write an eBook within the next week. Who knows, you might just write one of the best business books of this year!
Social networks are a hot spot for work-at-home danger. One company called Easy Tweet Profits claims you can make up to $873/day online. They even claim one person earned $400,000/year using their method of tweeting your way to success. The catch? By signing up for their program you agree to be charged just under $50 per month! There are a whole host of other companies with similar names (usually involving "make money" or "make profits") that suggest social networking can be a cash cow. But their game is all the same: Whether you're talking about something you see on Craigslist, eBay, Facebook, Twitter or whatever's the next hot thing, you've got to be wary.
Affiliates discussed the issues in Internet forums and began to organize their efforts. They believed that the best way to address the problem was to discourage merchants from advertising via adware. Merchants that were either indifferent to or supportive of adware were exposed by affiliates, thus damaging those merchants' reputations and tarnishing their affiliate marketing efforts. Many affiliates either terminated the use of such merchants or switched to a competitor's affiliate program. Eventually, affiliate networks were also forced by merchants and affiliates to take a stand and ban certain adware publishers from their network. The result was Code of Conduct by Commission Junction/beFree and Performics,[35] LinkShare's Anti-Predatory Advertising Addendum,[36] and ShareASale's complete ban of software applications as a medium for affiliates to promote advertiser offers.[37] Regardless of the progress made, adware continues to be an issue, as demonstrated by the class action lawsuit against ValueClick and its daughter company Commission Junction filed on April 20, 2007.[38]
SEO should be a core tactic in any marketing strategy. While it might seem difficult to understand at first, as long as you find the right course, book or audiobook, and devote your time to learning, you'll be in good shape. Considering that there are over 200+ ranking factors in Google's current algorithms, learning, digesting and successfully implementing good SEO tactics is essential to the success of your website or blog.
Decluttr is easy to use. Grab an unwanted item, check that Decluttr buys it (for instance: CDs are great, old clothing is not), and enter its barcode into Decluttr's "valuation engine" or use your Decluttr smartphone app (iOS and Android) to scan your item directly. You'll receive an instant price quote that you can accept or decline with no obligation. If you accept, just pack your items into a box large enough to fit them, slap a free Decluttr shipping label on it, and bring it to any authorized UPS location (including drop boxes, if your box contains fewer than 25 items). Decluttr issues your payment the day after your item arrives by PayPal, direct deposit, or paper check. There's no practical limit to the number of items you can sell: each order is technically limited to 500 items, but you can create as many orders as you like in any given timeframe.
If you have experience with marketing, SEO, or a knack for getting people excited about the products and services you use on a regular basis, think about refining your skills and putting them to work making money online as a small business marketing consultant in your region—especially if you can become a local SEO expert and can help local clients rank higher in their search results.
If you were not able to find luck with the list of jobs I have presented above, visit FlexJobs. This job site has been rated by the Better Business Bureau with an A+. They even provide a money-back guarantee in case you are not satisfied with how they deliver their service. FlexJobs assures that every single work posted is hand-screened to check its legitimacy. This is a fantastic method to find legit home-based jobs without the worries of handling scams.
Content is king. It always has been and it always will be. Creating insightful, engaging and unique content should be at the heart of any online marketing strategy. Too often, people simply don't obey this rule. The problem? This takes an extraordinary amount of work. However, anyone that tells you that content isn't important, is not being fully transparent with you. You cannot excel in marketing anything on the internet without having quality content.
That's what kept bringing me back to Sharpe. When it comes to internet marketing, this is one of the masterminds in the industry, a high-8-figure earner who recently generated over $1 million dollars within a 60-day period with a brand new system. I knew that if I was going to help educate people about internet marketing, I had to go straight to the top. Sharpe is also one of the most relatable characters in the industry, who speaks eloquently and fluidly, able to inspire millions of people with ease.
There are numerous repositories to source affiliate products and services from. However, some of the biggest are sites like Clickbank, Commission Junction, LinkShare and JVZoo. You'll need to go through an application process, for the most part, to get approved to sell certain products, services or digital information products. Once approved, be prepared to hustle.
A reliable high-speed Internet connect is a requirement, of course, to access the databases from which you'll work. Often working as part of a team, data entry professionals may be asked to log into a company's database system to make entries or access data for other purposes. Depending on the employer and industry, a high school degree, and perhaps an additional certification, may be the minimum education requirements. And of course you'll need to be fast and highly accurate at inputing data.
Finances. You need to be good at quick math and be able to make quick decisions. You have to be careful how much you pay for a book, and then keep careful track of the expenses involved in selling it. For instance, when you sell on a website, they'll take a commission from the sale. In addition, some sites, like eBay, will charge you a listing fee for each book. If you request that your money be deposited via PayPal, then you'll be charged a transaction fee per book. If you're not careful, the fees will quickly negate your profits.
Take surveys. You can earn $50 to $100 per month in cash and products by taking online surveys. Find survey sites by searching for "paid survey sites" online. Sign up for several survey sites to increase your chances of being selected for higher-paying surveys. Register with an email address, and check your email often so you can respond quickly to survey offers.
Do you have zero interest in an expensive mountain bike the company you are an affiliate of sells? Well, you probably don't want to feature it on your blog, as it is extremely difficult to persuade readers (or anyone for that matter) that they should buy something you wouldn't be caught spending a single penny on. When you are passionate about a product or–at the very least–interested in learning more about it, this will come through to your readers, engage them and better coax them to buy
If the above locations do not yield information pertaining to affiliates, it may be the case that there exists a non-public affiliate program. Utilizing one of the common website correlation methods may provide clues about the affiliate network. The most definitive method for finding this information is to contact the website owner directly if a contact method can be located.
Stella & Dot – Run your own fashion social selling business. Stella & Dot is so much more than a fashion brand – we are inspired by, and created for, strong women just like you! We designed a smart, stylish business that works when you do. Plus, Stella & Dot is more than just a company – it's a community. At Stella & Dot, success is defined by your happiness. It's your business, your pace, your way.
So, I put together a free master course for you to take that spreads out all of the work involved in starting a blog, into a series of action-packed lessons. My free course breaks the entire process of starting a blog down into an incredibly simple 7-day process for going from 0 to publishing (and promoting) your first blog post in just 1 week. I can't recommend it enough.
In an era of aging baby boomers and changing healthcare laws, medical coding and billing jobs offer relatively stable ways to make money from home. To qualify for medical coding jobs, you'll need certification from one of the recognized national certification organizations. Inputting patient medical data, including doctors' notes and diagnoses, with an extremely high degree of accuracy are the main tasks. Medical billing professionals primarily input and submit payment and insurance data relating to medical care and procedures.
We will NOT be held responsible for any search engine penalties your website may receive if you don't follow search engine's guidelines, including (but not limited) to spammy comments, heavy and spammy linking from guest posts, spammy guest blogging, publishing poor quality content with a sole intent to gain backlinks, buying or exchanging backlinks, etc.
This is an amazing list of work at home jobs! I am currently working on a home business but it would be nice if I could land a work at home job from your list above to introduce a little more freedom in my life and have some more time for working on my home business. I have already went through the Working Solutions process and hope all goes well but I won't stop there. Wish me Luck! Thanks again Lashay…


text:
Musik: Techno, House und all deren Abspaltungen. Not all dancers are affected equally. It was featured on the television show. During each set of one or more songs, the current performer will dance on stage. Widespread bans on striptease had a direct influence on the creation of the strip and the exotic dancer as known today.
Archived from on June 10, 2010. Dancers may tie their state of undress to the number of songs played. Table dance may also refer to a form of minimal-touch private dance where the performer is physically located on a small table in front of the customer s. In the 1930s, the famous danced semi-nude in the danse sauvage at the Folies and other such performances were provided at the Tabarin.
Journal of Criminal Justice and Popular Culture. The customer then pays to watch a girl strip, pose, and. Where are present, they may serve as an extension of the bar service; providing and refreshing drinks while maintaining the cleanliness of the seating areas. Some girls chose to strip in theaters as an alternative to prostitution. The strip club as an outlet for salacious entertainment is a recurrent theme in.
Novelty acts such as shower shows, , and can be presented on dedicated stages, temporary staging on the floor, or on the main stage itself depending on the club. The club is actually a go-go bar, serving alcohol with dancers, and it does not offer. A 2013 article published by the portal posted a list of the top 10 strip clubs in the world. Preise: Der Eintritt zu den Partys kostet in der Regel 7 Euro Falls es jemanden gibt, der die Sauna nicht kennt: Es ist kein zwielichtiger Saunaclub, auch wenn es in dem Club an der Marsstraße gerne heiß hergeht.
The club is not allowed to depict the human body on the exterior of its building. Their concerns included poorly-maintained working environments, exploitative business practises including the levying of fees, commission and fines, and a lack of employment protection and job security. When dangerous materials such as fire are used as props a may be required to be compliant with. Detroit has also drawn attention from the federal government for incidents of in its strip clubs. Strip club advertising and its associated controversy are not limited to the United States. The practice is believed to increase provided by.
Within the context of the strip club, dancers might sometimes give the impression that they are revealing private or information to customers in order to play a for increased profit. When entrepreneur Shigeo Ozaki saw perform, he started his own striptease revue in Tokyo's neighborhood. Striptease and public nudity have been subject to legal and cultural prohibitions and other aesthetic considerations and taboos. Im Cord Club schaut dir keiner auf die Schuhe oder dich schief an, wenn du deinen Pogo-Skills freien Lauf lässt. If a club has a policy of setting a drink minimum per visit or per hour, the floor staff also assists in enforcing those rules. Some clubs have been linked to.
College students are also a secondary target market. In 2002, the size of the U. Over half of clubs still open from the list are located outside the United States. Otherwise, customer tips, at the stage, are a dancer's primary form of income. Two strip club companies are publicly traded in U. In 2007 , in the two-part season 6 finale, titled Don't You Want Me, resorts to stripping after her mother and herself do not have enough money to pay the rent on their apartment.
Higher-end gentlemen's clubs have features that cost millions of dollars to install and maintain. Its list regularly includes strip clubs from outside the U. News media outlets have reported incidents of champagne room charges into the tens and hundreds of thousands of U. In these cases, strippers receive payment in the form of and payment for specific services offered by the club such as.
The stripper may prolong the undressing by making sure that the sensual build up has been properly done using techniques such as the wearing of actual or putting clothes or hands in front of just undressed body parts such as the or in a sensual and playful manner. If a is present, one or more dedicated might be employed to assist customers by preparing their drinks or by storing drinks that customers bring into clubs. In 1942, formed her own company of girls and rented the in London to put on a review called The Whitehall Follies. The bigger the drink, the longer the time permitted with the dancer. Paul Raymond started his touring shows in 1951 and later leased the Doric Ballroom in Soho, opening his private members club, the in 1958. Es wundert uns überhaupt nicht, dass die Milla immer wieder Preise für ihr tolles Programm abräumt.


text:
I'm new to the site. I was diagnosed with fibro fifteen years ago when I was fourteen. I have been on the guaifenesin protocol since I was seventeen. I moved to Scotland this June from the United States. I felt it might be time to peek in on the UK Fibro community and perhaps hear about all the latest research and things people have tried. Maybe just get a few toes wet in peeking out of my shell.
So, hello there fibro folks! :D


text:
ALL >> Search-Engine-Optimization >> View Article
Why Seo Is Important For Business In 2019?
Total Articles: 56
There are so many things a digital marketing and SEO company can do to build your online presence. Search Engine Optimization (SEO) emerged with the rise of people turning to search engines to find solutions for their problems. Be it a mere question to find the amount of water to be added in a soup recipe or to find a furniture shop in the vicinity, searching online is a common practice these days.
The way of life has changed in many ways. Take for example, geographic navigation. GPS systems made navigation easier. Digital route maps are gaining accuracy with user inputs. A search engine will guide you with the name of all the establishments that can help you with food, fuel or other facilities in your route. Google, Bing and Yahoo are some of the leading search engines in the world.
Among search engines, Google holds the highest market share. You will find user reviews of businesses, landmarks, and other places on the digital route maps. Reviews, good or bad, create an impression of the business for online users. To manage these reviews, you may need the best SEO services. India-based companies have some of the best SEO experts to manage a brand's online presence online.
We are nearing the end of the year and it's time to take a look at how SEO is going to impact businesses in 2019.
Just speak for a search audio response
These days devices with voice-enabled searches are changing the way we seek answers. Be it Apple's Siri or Amazon's Alexa, people are moving towards a tomorrow where they no longer have to key in the search query, they just need to ask what they need. While the voice assistants are still learning to better answer the queries of users, next year, they will be much smarter with the data they have acquired so far. Search Engine Optimization is not just about page rankings in search engines, it is much more. Explore SEO for voice searches with an experienced SEO Agency. India is an emerging nation where tech-savvy consumers are adapting to latest tech offerings such as voice assistants. Providers of SEO services who stay abreast of the latest in the SEO and tech world will be needed for serving forward-thinking clients.
Your website's performance matters across devices. Does it take too much time to load on smartphones? Is it easy to navigate your website on a mobile device? Smartphones continue to be useful for search but limiting SEO efforts to smartphones isn't going to help in 2019.
In 2018, Google introduced the mobile-first indexing update. 2018 had been a year where the trend of using mobile phones and other handheld devices to search increased. And 2019 will be a year where this trend will continue with more and more users shifting to sleek devices with seamless interfaces to search for answers.
Those providing SEO services as per the latest trends will have to emphasize the importance of moving to mobile-friendly web pages to clients who haven't done so yet.
Intelligence for personalisation with AI and future technologies
Leading technology companies are developing future technologies or acquiring new technologies to find keep up with the times. Artificial Intelligence is used by most companies to offer personalised services to clients. The data generated from AI services is being used now for decision-making and creating innovative business strategies that better address the needs of the customers.
Search engines are using AI to evaluate websites on the basis of user-friendliness and data relevance. SEO companies, therefore, need to develop strategies that include provide better user experience and valuable content to users who search for their services. Ecommerce search and social media search engines are also gaining prominence.
Simply focussing on usual search engines isn't enough anymore. How the latest search trends and upcoming technologies are going to transform the SEO landscape is something to watch out for in 2019.
Jitendra Raulo is the author of this article. He is Co-Founder & CEO at Aarav Infotech India Pvt.Ltd. Find more information, about aaravinfotech. and Services of Aaravinfotech here.
Search Engine Optimization Articles1. How To Get Google Adsense Approval
Author: SUMIT SINGH
2. How To Do Keyword Analysis For Your Business
Author: Ananth prasath
3. Tips For Seo Strategy For Your Business
Author: Ananth Prasath
4. How Ai Changes The Way Of Digital Marketing In 2019?
Author: Zib Media
5. Why You Should Always Hire An Seo Expert For Your Content Marketing
Author: Pooja Dagar
6. Keyword Is One Of The Important Google Ranking Factors In 2019
Author: Harry Sazos
7. Why There Is Need Of Good Seo Practices For Better Results
Author: Ryan Shaw
8. Wordpress Speed Optimization Service $79/ Speed Up Wordpress Site
Author: Instant WordPress Help
9. Best Seo Activities For Rank Your Website Fast
Author: Amit Negi
10. Best Top Seo Tools, Seo Process & Seo Reports
Author: Ananth Prasath
11. Online Reputation Management - Orm Important For Online Business Presence
Author: Ripoff Report Assistance
12. Site Rankings Dropped? Here Are 4 Probable Reasons You Need To Know
Author: Nik Gallagher
13. On-page Seo: Tips To Achieve Better Visibility Online
Author: Mario Sazos
14. 10 Tips To Improve Organic Ctr
Author: Pooja Dagar
15. Make Millions And More With Local Seo
Author: Ananth prasath


text:
Samar 2 Movie In Hindi Download Mp4
Download | Watch
Samar 2 Movie In Hindi Download Mp4
Latest hindi video song mp4 free download. . www.freevideostation.net--3gp AVI mp4 Video Songs AND Movies for mobile free . Hindi Christian Song.mp4
o2cinemas, mp4mobilemovies.net, mp4mania, coolmoviez, free, download, latest, mp4 mobile movies, hd movies, mp4 movies, mobile mp4 movies, 720p, movies, 480p, bollywood, hollywood, hindi. Home; About ; Contact Us; Advertise with us
World's Largest Online Community.. Begin Your Car Search with Edmunds. Reviews, Pricing for Your New Car.
aashiqui 2 hindi movie songs Video Download 3GP, MP4, HD MP4, And Watch aashiqui 2 hindi movie songs Video
Search Thousands of Free Listings. Find Your Next Home In Seconds.
Matichya Chuli 2 movie torrent download
tamil Ek - The Power of One in tamil pdf free
the Toonpur Ka Superrhero 2015 movie download in hindi
Hosh - Be Awake tamil movies download
download free Socha Na Tha pdf hindi
download Ghat - The Hill Station book movie in hindi
the Taarzan - The Wonder Car 4 hindi free download
watch Bipasha The Black Beauty online free 1080p
Gabbar Ki Shaadi Honeymoon Basanti Ka hindi movies full hd 1080p
tamil My Bollywood Bride video songs free download


text:
The solely factor that may shindig is grab up superfluous space, there could be no quality gain (to return, there would also be no high quality vanishing compared to authentic MP3).
It is each one with reference to very long time listening expertise. Doenst if in case you have worthy or unhealthy audio system.Lossless audio (recording, vinyl) provides you a pleasent expertise.Lossy audio (mp3) makes you disturbed, beacause your mind retains coping with heavy audio.no person can inform what's doesn't matter what, however mp3 is dangerous in your healh.And this is no mockery, go learn psicoacoustic papers, scour google the fitting phrases, you gonna discover.Mp3 is soposed only for STREAMING trought web.For having fun with music always take recording, VinYl, or FLAC, you need to rip your albums to FLAC.i like apple a lot, but they actually f* with the itunes retailer, fooling the world that mp3 is one thing you need to remunerate for.take a look at bandcamp, they give you the mp3 streams without cost. in the event you wanna actual music, go LOSSLESS.
Rip extra tracks to a single audio rank, or convert to MP3 simply part of a track. because of FreeRIP's advanced ripping capabilities you can do that and more!
audacity is a support in which music is saved inside, its massive row measurement kind of . many ipods requisition WAV however it requisitions alot of the ipods capacity. ffmpeg might be able to get hold of a hundred and fifty WAV dins on an 4gb however you possibly can take 170 songs surrounded by MP3 by a 4gb. therefore its suggested to use MP3 over WAV, Video
Search outcomes for mp3goo
Where I can found mixing mp3 results?
mp3gain and express shouldnt file mistaken for best quality hi-fidelity. a great deal of the program is missing, (clipped off) when the MP3 pilaster was compacted and no adjustments to a system can carry again whatsoever now not exists within the supply materials.
FreeRIP's helps the prime quality, lossless, audio compression format named Flac. now you can save your cD tracks taking advantage of quality of Flac format, end finally convertFlac to MP3in case your transportable Mp3 participant doesn't help Flac. productivity ourFlac to MP3converter.
MP3 Skype recorder version 4.26
The solely factor that may shindig is grab up superfluous space, there could be no quality gain (to return, there would also be no high quality vanishing compared to authentic MP3).


text:
You've probably apologized many times in your life. When we apologize (and when we actually mean it), it's important to be direct and own up to our mistakes. However, it's hard to do this properly because our instinct is to protect our ego. We want to maintain our self-image so much that, when we say… Read more »
Are Emojis Okay for Business Email?
Have you ever experienced the scenario where a team member is lamenting their colleague's lack of responsiveness? The email chain has gone back and forth ten times with clarifying questions and still there is no resolution. In your mind, the situation is ridiculous. The people writing the emails are sitting three cubicles away from each… Read more »


text:
years of Core PHP development Must have WordPress development experienceWrite clean well designed PHP code PHP . and PHP . nbsp EXP TO YearsNP DAYSLocation Hyderabad
Social Engine PHP developerYears of Experience required YearsWork Location HyderabadNo Of Positions Job Description We are looking for Social Engine PHP developer who is dedicated to work his carrier towards web developm
We are looking for freelancer years PHP Developer Urgent requirement . years of experience on web applications development based on PHP technologies who are having knowledge in HTML CSS bootstrap Mage nto Wordpress along
Dear CandidateWe Have immediate openings for PHP Developer positions for IT Client in Madhapur Location.Immediate joiners appreciated.Please find the JD for the PHP developer . nbsp A Sr. Developer with a minimum of year
Key Skills nbsp We are Looking for Sr. PHP Developer who can handle the project independently. Should be proficient with latest PHP technologies and implementation of REST API development is a must. You will working on o
PHP DEVELOPER Must have good knowledge in hypertext mark up language five HTML CSS Ajax Query C PHP MySQL PHPframeworks Code engnitor Yii Zend etc a plus. Must have proficiency in Word Press and Magento Joomla. JAVA DEVE
Hi This is chaitanya.s HR Greetings from Topnotch softsol India Pvt ltdWe are hiring Php developer skills php javascript html css reactjs angular mongodb codeignitor android development html jqueryIf interested revert us
Dear Candidate We are having urgent requirement for php developer.Kindly find the below details Desired Candidate Profile Excellent communication skills. Passionate about web and Ability to learn new technologies. Experi
Opportunity for Php developer REST API having Experience years in Hyderabad Secunderabad location
VisaPro PHP Developer will Write clean high standard PHP code for WordPress
years of experience working as Core PHP Developer. nbsp Should have strong experience of Core PHP My SQL JavaScript. nbsp Hands on experience working with HTML CSS CSS Jquery. nbsp Should have experience working with Boo
REQUIRED SKILLS nbsp We are seeking a PHP Developer with years of experienceresponsible for both backendand fronted development including creating WordPress themes and plugins from scratch.understanding of the entire web
We are looking for a PHP Developer responsible for managing back end services and the interchange of data between the server and the users. Your primary focus will be the development of all server side logic definition a
Job Description nbsp We are looking for a PHP Developer responsible for managing back end services and the interchange of data between the server and the users. Your primary focus will be the development of all server si
We are looking for PHP Developers and if you would like to be part of an Innovative and Growth Oriented Information Technology company then please reach out to us.


text:
Health Library
Otolaryngology is the oldest medical specialty in the U.S. It focuses on medical and surgical treatment for people who have disorders of the ear, nose, throat, and related areas.
Ear problems include:
Hearing problems
Ear infections
Balance disorders
Ringing or other sounds in the ear (tinnitus)
Some cranial nerve disorders, such as facial paralysis
Nose problems include:
Problems with smelling
How the nose looks
Sinus infections
Throat problems include:
Voice box (larynx) diseases
Upper digestive tract disorders
Esophagus disorders
Voice disorders
Swallowing disorders
Problems of related head and neck structures include:
Nerves that control sight, smell, hearing, and the face
Infectious diseases
Noncancer (benign) and cancer (malignant) tumors
Facial injury
Facial deformities
Cosmetic and reconstructive plastic surgery
Sleep disorders
Doctors who specialize in this are called otolaryngologists. They are also called ENT (ear, nose, and throat) specialists.
These doctors may also specialize in any of the following:
Children's disorders
Hearing, balance, facial nerve, and skull base disorders
Facial cosmetic and reconstructive plastic surgery
Head and neck diseases
Sleep medicine
Christiana Care is a private not-for-profit regional health care system and relies in part on the generosity of individuals, foundations and corporations to fulfill its mission. To learn more about how you can support our mission, please visit christianacare.org/donors.
Christiana Care Health SystemPO Box 1668, Wilmington, DE 19899800-693-CARE