text:
|Publication number
|Publication type
|Application number
|Publication date
|May 30, 2006
|Filing date
|Jul 30, 2002
|Priority date
|Mar 14, 2002
|Fee status
|Also published as
|Publication number
|Norbert Schroeder
|Original Assignee
|Sap Ag
|Export Citation
|BiBTeX, EndNote, RefMan
|Patent Citations (13), Non-Patent Citations (4), Referenced by (21), Classifications (7), Legal Events (5)
|External Links: USPTO, USPTO Assignment, Espacenet
This application claims the benefit under 35 U.S.C. � 119(e) of pending U.S. Patent Application No. 60/364,551 filed Mar. 14, 2002, for "Service Provider Integration Framework", and pending U.S. Patent Application No. 60/364,970 filed Mar. 14, 2002, for "Electronic Records Management", the disclosures of which are incorporated here by reference.
Most computer program applications can be described in the abstract as the total possible interactions between defined object components.
When programming is done by linking object components to each other, the relationships between the object components become hard coded in a program.
When programming is done by application modeling, object components are linked to each other indirectly, through a framework, for example. The premise behind application modeling is that it is possible in many cases to describe and standardize the interaction of object components in an abstract way so that different object components can be addressed in an identical manner. With application modeling, interaction is thus not implemented by a direct method call to the desired target, but through a standardized method call to a neutral instance (a framework) that forwards the request. The actual programming is thus reduced to the clearly defined and isolated object components.
Application modeling with the help of frameworks has the following advantages. The overall system has a reduced susceptibility to errors. The overall system is easier to maintain. The programming of object components and the modeling of an application are decoupled. The application must only be concerned about the development of its functions (object components). New components can be integrated without programming.
While programming is based directly on a set of object components, in modeling a framework is a neutral instance that resolves all indirection at runtime. By analogy one can imagine a portal that acts as a broker and arranges for services (e.g., applications). This idea is the basis for application modeling. Of course this view is an ideal; in reality it is to be expected that both modeling and programming will be used for the coordination of object components in an actual project.
The invention features a framework architecture that provides a separate client framework and backend framework, for the integration of service providers. In another aspect, the invention provides class roles, which can be used to determine dynamically a class from a class role at runtime, from which dynamically determined class a programming object can be instantiated. Class roles are advantageously used in the framework architecture.
The architecture of the invention achieves a variety of advantages, some of which will be described in the following paragraphs.
If an object 1 is to interact with an object 2, the interaction is describable without specific knowledge about object 2. This is achieved because requests are addressed to the framework, which determines the suitable service provider and forwards the request to it.
Objects of different granularity are able to interact with each other. The addressing scheme is flexibly definable for different objects. And it is possible to represent the granularity of the service provider objects in a model. These advantages are achieved by use of a persistent object identifier and a service provider space.
Objects having very different functionality are able to interact with each other. This advantage is achieved because the functionality is represented in abstract form.
Objects having different technical implementations are able to interact with each other. This advantage is achieved because the technical implementations of interacting objects are completely protected by means of a neutral instance.
The interaction between different objects can be of different intensity. This advantage is achieved because interactions always occur over a neutral instance that supports optional paths of interaction.
It is not necessary to know which objects will interact with each other in the future. This is achieved by the implementation of a flexible addressing scheme that is convertible to different presentation forms.
Interacting objects need not know with which objects they interact. This is achieved by use of a persistent object identifier, a small number of basic data types at interfaces, a registry, class roles, and late binding.
When N objects are to interact, it is not necessary that each object integrate an interaction with N−1 other objects. This is achieved because each of the N objects communicates exclusively with exactly one neutral instance. Through the neutral instance, all objects can communicate with one another.
The addressing scheme can distinguish between an instance (an object that already exists) and a model (where the object does not exist yet). This is achieved by use of persistent object identifiers and service provider spaces.
A solution implemented in the architecture can be largely independent of the selected client platform. This is achieved because, on each level, there is a clear distinction between client platform-dependent and client platform-independent attributes.
In resolving references, the neutral instance can select those objects that actually work under the given circumstances. This is achieved by use of class roles and by the separation of the backend framework from client frameworks.
Software components of a solution built on the architecture can be exchanged during production. This is achieved because of the indirection of the components at definition time and the late binding at runtime.
The semantics and syntax of local communication are independent of the development platform. This is achieved because local communication occurs exclusively through interface methods, and method parameters are reduced to a small number of basic data types.
The semantics, syntax and implementation of remote communication are independent of the development platform. This is achieved by performing remote communication using XML (Extensible Markup Language) and HTTP (Hypertext Transfer Protocol). Other open, platform-independent technologies can be used as well.
The framework can be implemented efficiently. This is achieved by implementing so that only interface methods are called by interface references, and further by providing system functions to determine classes and instance attributes. Thus, during runtime it is possible to determine system attributes of classes and instances (not to be confused with class attributes and instance attributes).
Framework variants can be defined. This is advantageous for at least two reasons. First, depending on the client platform, different communications technologies may have to be used for the integration of visual service provider components. Second, client and backend framework classes in their implementation are sets of rules that do not always correspond to specific requests. In order to meet these two requirements, client and backend framework are implemented according to the same principles as the service provider integration. This means that class roles are implemented and that local communication uses interface methods exclusively. Thus, every class of client and backend framework can be dynamically exchanged at runtime (without programming), as long as the class role definition is fulfilled. Interface technology (separation of interface and implementation) and class roles thus permit the definition of problem-specific framework variants.
First, the framework architecture of the invention will be described.
A description in a "local" view is first given, that is, a view in which there is no remote communication between different systems.
A service provider includes a service provider client, a service provider backend, a service provider repository, and a service provider persistent object.
A framework includes a client framework and a backend framework.
Two independent service providers (A) and (B) are shown in
Every service provider is responsible for all services to its specific objects. Its responsibilities include in particular: storage of the persistent objects in the service provider repository; visualization of the objects in the service provider client, and access to the objects in the service provider backend.
A framework is made up of a client framework and a backend framework. This division allows one to develop different client frameworks as needed. In particular, all client platform dependencies can thus be shifted to the client framework. Specialized client frameworks, however, can also be created to perform some special processing of objects.
The client framework communicates by means of interface references with objects of the backend framework. The backend framework executes non-visual operations on service providers (that is, on service provider backends). All user interfaces are part of service provider clients that are integrated through the client framework.
Important functions of the client and backend frameworks include:
In reference to
The client framework primarily has
the task of the coordination of
client components. To execute
these, it makes use of services of
the backend framework
Through this are processed all non-
visual interactions between
framework and backend that are
independent of the client platform.
All interactions between
framework and service provider
that can be dependent on the
client platform.
Internal to service provider
Internal to service provider
Internal to service provider
Which communication channel should be used can be easily decided. Every time one service provider (A) wants to make use of a service of a different service provider (B), the channel over the framework should be used. Every time the information flow is service provider internal, a direct connection should be used. Thus, it is not necessary to transfer service provider internal information over the framework. The interfaces defined by the framework can thus be kept relatively simple.
Depending on the client platforms, it can be necessary to use different communication methods between the components involved. To handle this, different client frameworks can be implemented on the client side to implement the platform-dependent communication methods and call specific service provider client components.
For distributed scenarios, two distinct cases can be differentiated:
Restriction to these two cases has the advantage that the topology stays clear and only little data is to be replicated.
In a configuration where the framework is local and the service provider is remote, the framework works exclusively locally. If services of other systems are made use of, it is the task of the service provider to access them.
In a configuration where the framework is remote and the service provider is local, as shown in
In one implementation, the communication between the frameworks is by XML messages, while the local communication is based on the call of interface methods. This way, as many systems of different platforms as desired can be combined in a clear topology. The local frameworks communicate exclusively using XML and are thus not visible in their technical implementation from the outside.
The integration model is based primarily on the following elements, which are defined below: class role; service provider type; service provider; service provider space; persistent object identifier (POID); area; and framework
These elements will now be described.
A class role is defined by a set of interfaces.
Class role:={Interface}
Interfaces can be mandatory or optional, visual or non-visual.
If at least one interface is visual, the entire class role is regarded as visual.
The complete definition of a class role is then:
Class role := { Interface (visual | non visual) (mandatory |
optional) }
A class role provides a mechanism that permits one to assign to a class occupying the class role a certain functionality. The class can then be accessed from the program at runtime by means of this functionality.
Class roles as defined here differ from nested interfaces, which can be explained using a simple example. A service is described through the existence of the interfaces A and B. While A is mandatory, B is defined as optional. The functions of B can exist (but need not) in order to provide the service.
The definition of a class role for the service would look as follows:
SERVICE:={Interface A (mandatory), interface B (optional)}
In order to achieve the same flexibility without class roles, it would be necessary to define another interface. Simultaneously an implicit reference must be made between the two cases:
SERVICE only with A:=interface A
SERVICE with A and B:=interface AB
Where interface AB is defined as:=(Interface A, interface B).
The difference arises from the difference between set creation and hierarchy formation and from the fact that if interfaces exist, they must be implemented.
A service provider type is defined through the assignment of a set of class roles, which can be flagged as optional or mandatory:
Service provider :=
{ Class role (optional v mandatory }
A service provider is first defined through the assignment to exactly one service provider type and a set of classes:
Service provider :=
service provider type ID
{ Class }
Furthermore, every class of a service provider can occupy one or more different class roles, while a class role can be occupied exactly once per service provider.
The definition of a service provider can thus be expanded as follows:
Service provider :=
Service provider type ID
{ Class { Class role } }
Every service provider is responsible for a specific set of data. A service provider is generally implemented as a set of programs that are able to manage this data, visualize this data, and so on. Programs that implement a service provider are generally parameterized. Their behavior can therefore be manipulated from the outside.
Any subset in the dataset of the service provider is an allowed partitioning. The entire dataset is a trivial partitioning.
A service provider makes the definition of the parameters for the partitioning of the dataset known to the framework. They are known as connection parameters. For example, a document archival service provider might partition its documents by document type.
Connection parameter definition :=
{ Service provider parameters for the partitioning }
The service provider definition is thus:
Service provider :=
service provider type ID
{ Class {Class role} }
{ Connection parameter definition }
Every service provider that manages persistent objects has a unique key structure for its objects. If the service provider is known, a unique key is a necessary prerequisite in order to access the object.
Key structures are specific to service providers and cannot generally be given in advance. For this reason, every service provider publishes the definition of its unique key to the framework. For example, in a document archival service provider, documents might be described uniquely through their document ID and the ID of the corresponding archive where the documents are stored. The parameter POID for the service provider would thus be the document ID and the archive ID.
The service provider definition is thus:
Service provider :=
Service provider type ID
{ Class {class role} }
{ Connection parameter definition }
{ Persistent object parameter definition }
Connection parameters represent a partitioning of the service provider dataset. Persistent object parameters allow a unique identification of individual objects in the service provider dataset.
In addition, some situations require the transfer of pure runtime information that does not have any direct connection with the service provider repository. These are referred to as service provider context parameters. The service provider makes a definition of all service provider context parameter definitions that it understands known to the framework. The definition of these parameters is a further part of the service provider definition. For example, in special situations, a service provider for general documents could make only documents in a selected language or in a particular format available. These parameters can only be determined from the corresponding application context and would therefore be typical context parameters.
The service provider definition is thus:
Service provider :=
Service provider type ID
{ Class {Class role} }
{ Connection parameter definition }
{ Persistent object parameter definition }
{ Context parameter definition }
Since the service provider definition represents a discrete entity, any kind of other information can be linked to it. Some examples are:
The complete service provider definition is thus given by:
Service provider :=
Service provider type ID
{ Class { Class role } }
{ Connection parameter definition }
{ Persistent object parameter definition }
{ Context parameter definition }
{ Further attributes}
A service provider is, first of all, defined by means of a set of programs (classes) and their parameters. If the service of a service provider is to be used, one should be able to handle at least the following two particular cases, instance reference and model reference.
In instance reference, a service provider A has knowledge of the complete addressing of a persistent object in a service provider B and would like to execute an action on it (for example, display). Service provider A thus has a complete valuation of the persistent object parameter definition of service provider B and can address the target object in the repository of service provider B through the framework.
In model reference, a service provider A does not have knowledge of the complete addressing of a persistent object in a service provider B and would like to create an object in service provider B or search for an existing object.
In the second, model reference, case, service provider A must be able to inform service provider B under which constraints an object is created or searched for in the repository of service provider B. For this case, two possibilities are available (any combination allowed): the constraints can be defined beforehand; and the constraints are only determined at runtime and cannot be defined beforehand.
Both cases can be covered by the service provider definition. As described above, a service provider is defined, among other things, through a set of connection parameter definitions and a set of all context parameter definitions. Due to the context parameter definitions of service provider B, service provider A is in a position to provide any runtime information that can be handled by service provider B. The connection parameter definitions of service provider B are used at definition time to restrict the set of the possible objects by means of an actual evaluation. Every evaluation of the connection parameters thus identifies exactly one partitioning in the service provider repository.
A first definition of the entity service provider space is thus:
Service provider space :=
Service provider ID
{ Connection parameter value }
Accordingly, a service provider space is defined through an ID, exactly one service provider, and a set of connection parameter values (that refer to the service provider connection parameter definition) that identify exactly one partitioning.
A service provider space can thus also be regarded as a service provider definition that results from a certain parameter setting (connection parameter values). If no parameter setting exists for a service provider, it has exactly one service provider space.
Since the service provider space defines a discrete entity, any further kind of information can be linked to it. Some examples include language-dependent short texts, classification of the service provider space, special activities that can be executed for an instance or a model, and so on.
The complete service provider space definition is thus:
Service provider space :=
Service provider ID
{ Connection parameter value }
{ Further attributes }
To describe the interaction of different service providers, it is necessary to supply a general schema for addressing. This schema will first be described independent of any implementation.
The general schema consists of two independent information complexes, as illustrated in
A service provider is defined, among other things, through a set of persistent object parameter definitions. By that, parameters are defined whose value definitions uniquely identify objects in the service provider repository.
Thus a first definition results:
Persistent object identifier
:= { Persistent object parameter
values }
The persistent object identifier must contain information that allows the framework to identify the responsible service provider unambiguously. Since the service provider definition is a discrete entity, the service provider ID could be used for that. Another option, however, is to use the service providers space ID, because exactly one service provider is assigned to each service provider space. For the time being, the second option is selected.
Thus the definition can be expanded to:
Persistent object identifier
:= Service provider space ID
{ Persistent object parameter values }
It has already been mentioned above that starting with a service provider A that would like to make use of services from a service provider B, two situations are to be distinguished: service provider A has a reference to a persistent object of service provider B; and service provider A would like to create or search for an object of service provider B.
If both cases are to be represented by an addressing scheme, one must consider whether or not the persistent object parameter values are known in the persistent object identifier. For a persistent object identifier, only three states (initial, model, and instance) and two allowed state transitions (from initial to model and from model to instance) exist.
In order to cover both cases with an addressing scheme, it thus suffices to include the state in the definition. Alternatively, it would be possible to use different schema for identification in each case. The solution described here, however, has advantages because at runtime only one state change is necessary, when a state change from model to instance occurs.
Thus, the definition can be extended to:
Persistent object identifier :=
Service provider space ID
{ Persistent object parameter values }
The persistent object identifier has a GUID (Globally Unique Identifier) as ID. This is advantageous in that the buffering of runtime objects and persistence of the persistent object identifier can be carried out with this ID. However, it is not necessary for the coordination and interaction of service providers.
Thus the definition can be extended to:
Persistent object identifier
Service provider space ID
{ Persistent object parameter values }
It can be necessary (1) to extend the persistent object identifier by further more problem-specific attributes, and (2) to have it be available in different representations. Both can be achieved by specialization.
Thus, the definition can be completed to:
Persistent object identifier
Service provider space ID
{ Persistent object parameter values }
{ Further attributes }
While service providers primarily have a technical character according to their definition (set of all classes that implement a certain service), service provider spaces are to be considered as modeling entities, with which a clearly defined subset of all objects can be addressed in the service provider repository.
To create search objects in a service provider repository or access these objects, a framework only needs the specification of the accessed service provider space.
In the communication of a service provider A to a service provider B imparted over the framework, the technical implementation and the existence of service provider B are irrelevant from the viewpoint of service provider A. With the request of service provider A to the framework, the service provider space ID is transferred. The framework determines the underlying service provider (exact classes that were registered by the service provider B) from that and passes the request on to it.
If a new application is to be modeled, the question thus is, which service provider spaces can be used for that. This is enabled through a discrete entity called an "area". Use of an area allows one to introduce cross-framework functions (definition of the POID, possibly the class roles, possibly also the standard activities, and so forth). Use of an area thus allows one to define problem-specific framework variants.
A service provider space is always assigned to exactly one area. Thus, a first definition of the term area is:
Area :=
{ Service provider space }
For the dynamic selection of service provider spaces and also for visual layout, it is necessary to have criteria at one's disposal that allow this.
Here it is possible to define classification parameters as well as possible value definitions of the parameters for the area. In the service provider space definition, the parameter values can be used to carry out an assigned classification.
The area definition can thus be extended to:
{ Service provider space }
{ Definition classification parameter service provider space}
{ Value classification parameter service provider space }
Classes creating a framework can be specialized per area. Through this specialization, framework variants are shaped.
The area definition can thus be extended to:
{ Service provider space }
{ Definition classification parameter service provider space}
{ Value classification parameter service provider space }
{ Specialized framework classes }
Earlier, the persistent object identifier (POID) was introduced as a general reference to service provider persistent objects. If such a reference is made persistent in the dataset of a service provider, it can become necessary to have a central directory to support the functions of reuse, existence check, and use tracking.
To provide these functions, two directories and an XML representation of the POID can be used. These are illustrated in
The POID directory registers the POID by means of the POID ID and notes a content repository in which the XML representation of the POID is made persistent. As shown in the figure, the content repository can be a KPro repository, which is a system of the kind described in U.S. Pat. No. 6,134,552 for managing and storing objects.
The POID-POID relation directory registers relations between POID IDs.
To make use of this service, the following information has to be considered in the area definition:
The area definition can thus be extended to:
{ Service provider space }
{ Definition classification parameter service provider space}
{ Value classification parameter service provider space }
{ Specialized framework classes }
{ Information on POID and POID—POID relation directory )
Class roles allow the dynamic determination of classes and the instantiation of objects of these classes. Through the area-specific definition of class roles, the framework can implement a service that allow this also when the class roles are not already predefined by the framework.
The complete area definition is thus:
{ Service provider space }
{ Definition classification parameter service provider space}
{ Value classification parameter service provider space}
{ Specialized framework classes }
{ Information on POID and POID—POID relation director }
{ Area-specific class roles }
Both the backend framework and all possible client frameworks (and their variants) are structured according to the same principle as in service provider integration. In particular, this means that the framework is defined through a set of classes that occupy certain class roles.
The backend and client frameworks are defined as follows:
Backend framework :=
{ Class { Class role } }
Client framework :=
{ Class { Class role } }
Thus, all classes creating a framework can be substituted without programming. This is the basis for the implementation of framework variants that adapt themselves to specific problems.
In the framework registry is deposited all information needed by the framework to perform a coordination of service providers at runtime. This includes all definitional data for the terms introduced above.
As shown in
The link between the data stored in the registry and the information needed in a program at runtime is produced by the previously defined class role. The program basically knows the class role and the ID of a service provider space. This information suffices to determine dynamically the necessary class at runtime with the help of the registry.
A local framework registry enables the framework to carry out local coordination. As described above, a local framework communicates exclusively with local service providers in this situation. For this, the following information is defined in the local framework registry: area definition, area classification parameters values, service provider definition, and service provider space definition. This information can be obtained interactively from a developer through a multi-level user interface of data entry screens of conventional design.
Service providers are primarily defined through the registered classes.
For all parameter definitions, standard features are registered. It is advantageous that the registration of the parameters occur automatically through a class role to be implemented by the service provider. This avoids manual errors in maintenance. Also, the service provider implementation must refer to the identical definition and thus needs it in the implementation.
To implement the above-described distributed model, it is necessary to have information about the local frameworks of other systems available in every local framework. To this end it is sufficient provide through an administrative process the information as to which of the distributed systems have a framework. The information comparison between the frameworks can then occur to a large extent automatically and the information can be made available for quick access through local caching.
For arranging the services between different service providers, only the service provider space ID is necessary. Consequently, it suffices to set up a cache in every system that lists all service provider space IDs for every system.
The cache can be implemented to operate on demand, as follows. When a local framework receives a request for a service provider space that is not known to the local framework, the local framework turns to the local service provider space cache and determines the responsible system from there. If the service provider space cache does not know the service provider space ID, the request is passed on to another system, which proceeds in the same way, until the service provider space is found.
The framework registry is maintained in a table. Every class of the framework can be dynamically replaced, as is the case with service providers.
To achieve an interchangeability of all service providers as well as the actual implementation of each particular service provider, all object instances are generated exclusively by the framework. The name of the class is determined from the registry, and the instance is dynamically created and initialized at the latest possible point in time. Thus it is ensured that no service provider depends on the static name of a class of another service provider or of the framework.
The client framework requests the instance from the backend framework and passes the following information: service provider space to be called, and context information that influences the selection of the class role and thus the class.
The backend framework dynamically determines the class role from the context, the class to be used from the class role, creates the instance, and carries out an initialization of the generated object that matches the class role. The object reference is returned to the client framework.
All objects that are part of a framework are dynamically instantiated by means of a class role at the latest point in time according to the same principle as for service providers.
Through the object factory, the framework has the full control of all instances that interact using the framework. Furthermore, an object buffer is provided that buffers all service provider instances. Objects are thus always only generated and buffered when they are needed.
An object buffer for frameworks is provided, having the same function and functionality as the object buffer for service providers, applied to instances of the framework.
The persistence of instance data occurs through the responsible service provider repository. The framework serves exclusively as a broker and does not have any persistence service for service provider objects. For the identification of the persistent service provider objects, the persistent object identifier described earlier is used.
The service provider is exclusively responsible for authorizing access at the level of individual objects. At a higher level, authorization checks on area and service provider spaces can be performed. Since the service provider spaces structure the service provider dataset in a desired granularity, authorization for subsets can thus be assigned at the level of service provider spaces.
In considering integration interfaces, a distinction is made between local and remote communication. The communication between framework and service providers is always regarded as local; the communication between different frameworks, as remote.
Local communication occurs through use of interface methods.
The data types of the method parameters can be reduced to a few basic data types, for example, Boolean, integer, string, binary, object, and URL (Uniform Resource Locator).
The implementation of a local framework can thus be made independent of the development platform. Semantics and syntax of the interface methods are independent of the selected programming language.
Remote communication occurs using XML messages over HTTP. This ensures that local frameworks are interchangeable, in particular, that the local frameworks are platform independent and vendor independent.
Service providers must themselves be able to determine to at least a certain extent the degree of integration detail. Different service providers by nature have a different range of services.
To achieve a very high degree of flexibility, two different mechanisms are provided that complement each other: first, optional class roles and optional interfaces at definition time; second, determination of service provider for specific activities at runtime.
As noted above, class roles are implemented by service providers. A framework anticipates that a class role definition may have optional interfaces and that a class role may be defined as optional.
For example, an optional class role can be defined by a framework to search the dataset of a service provider. If a service provider implements this class role, the framework automatically makes the search available as a possible activity on the service provider to every other service provider.
Service providers can offer specific activities that are useful only in combination.
As illustrated in
Thus, it is possible for service provider B to make its specific activities dependent on persistent object attributes at any desired granularity.
The runtime of the framework is also built on the object factory principle with late binding. All classes, whose instances create the framework at runtime, can be dynamically replaced at runtime.
The ability to substitute of framework classes allows individual applications or even individual service providers to specialize the rule types of the frameworks for their purposes.
The framework thus not only enables a flexible integration of service provider components, but also a problem-specific specialization of the framework itself.
An example of framework specialization is the POID object. The persistent object identifier (POID) introduced above is represented at runtime as an object. A class of the framework exists for this, which is always used when the application does not make a specialization. If it is necessary for the application to transfer further information with the POID object, it can make a specialization of the class and register the specialized class in the framework registry.
The persistent object identifier is convertible into different display formats. Reasons for this include the following.
1. In a local communication, the quickest and most flexible type of communication is the exchange of object references. For this reason, a class representation of the persistent object identifier is required.
2. In some situations it is necessary to make the persistent object identifier itself persistent. For this, an XML representation is advantageous.
3. If an object is to be called using HTTP, a URL representation is necessary.
Conversion into different display formats can be carried out in part generically and in part only with the help of service providers.
In the implementation of searches of data maintained by service providers, one can distinguish five cases using the following questions:
From the set of all possible combinations of the above questions and answers, the cases listed in the following table are particularly useful.
provided by?
One service
Implemented using
special class roles.
One service
Can be reduced to P1.
Can be reduced to case
P2 (homogeneous) or
to case P4 (inhomo-
geneous with respect
to service providers).
Implemented as
special service of the
Allows a service
provider A to
determine a set of
values for an attribute
of a service provider
As has been noted, a local framework communicates locally with service provider components by means of interface methods. The framework accepts a request of a service provider A, determines the responsible service provider B, generates the visual query object of service provider B and instructs it to execute the search. The visual query object of service provider B returns a POID.
In case P4 in the local view on query, the initial situation is that a service provider A would like to carry out a combined search in the data of N other service providers; however, because different service providers are involved, the search dialog must be provided by the framework. The following approach is taken:
To implement this approach, an alias for searchable attributes is necessary in order to scale the semantics of the service providers' attributes cross-application.
In case F1 in the local view on query, service providers publish certain attributes to the framework. For example, to implement an input help service provider cross-application, the following are sufficient: The service provider implements a class role for the input help; and the service provider classifies its published attributes according to "Input help supported: yes, no".
The following example of an implementation of a file management application illustrates the integration and interaction of the different components. (In the present context, the word "file" has the sense of a collection of related documents.) The example will show what happens if, for example, an element of a file is displayed from a file browser of the file management application.
As shown in
After selecting a node, an activity supported by the service provider for the corresponding element can be selected and executed using a context menu. If, for example, as shown in
This example will be used to describe briefly what the communication of the service providers with the framework basically looks like.
In the file, the persistent object identifiers are defined at the corresponding nodes. If it is an instance node (e.g., "invoice of the company Becker"), the POID is in the state "instance", that is, both the framework-specific parameters and the service provider-specific values are completely defined. In the case of a model node ("customer purchase orders"), only the framework-specific parameters (POID-ID and service provider ID) are set and the POID is in the status "model".
If a context menu is requested on the instance node, Service Provider File calls a service function of the framework and transfers the corresponding POID to the framework. The framework now determines which activities Service Provider Document makes available. For this purpose, the framework first determines the service provider ID from the POID and then determines the class of the service provider, where the information can be read using the supported activities, with the help of the registry and the corresponding class role. To supply this information, the service provider implements a corresponding interface at this class so that the framework can read the supported activities using a defined method call. The framework then assembles a context menu from the now known activities and returns this context menu to Service Provider File, which then displays it. If the user selects, for example, the activity "Display" in this context menu, Service Provider File triggers an event, for which the client framework has registered itself and transfers the selected activity, the POID of the target object, its POID, and a unique ID to the framework. The client framework again first determines the ID of the service provider from the target POID and has the backend framework determine the necessary class of the service provider. For this purpose, the backend framework first connects to the service provider and checks whether the requested object exists at all in the repository of the service provider. If not, the display action would be cancelled at this point. If the object exists, the backend framework again determines the class of the service provider in which the requested function (here the visualization) is implemented; it determines this from the registry with the help of the corresponding class role and the service provider ID. The backend framework instantiates this class and transfers the reference to this class to the client framework. The client framework calls the corresponding interface method on this class to start the visual component and transfers the requested activity. It is the sole responsibility of Service Provider Document to determine in which form the corresponding object is visualized. The client framework basically only expects as a return value a reference to the visual object and some information regarding whether the requested activity could be performed. The visual object is then placed in the corresponding window of the client framework and the calling Service Provider File is informed that the requested action "Display" has been successfully carried out.
This example illustrated that the individual service providers communicate only with the framework. Direct communication between the service providers does not occur.
As a form of summary,
The description will now turn to:
This "class view" on the framework architecture is thus not a strict hierarchy of classes, but a frame of abstract classes extended by the definition of class roles.
CL_SRM is the uppermost class in the entire hierarchy. General services are implemented in this class, which are accessible by interface methods. For this purpose, the interface IF_SRM_OBJECT is implemented with this class. All classes creating a service provider and framework directly or indirectly inherit from CL_SRM.
The interface IF_SRM_OBJECT has the following methods.
Returns a list of all interfaces of
the object. Is used, for example, to
check object references at runtime
Returns TRUE if a certain interface
Returns TRUE if object occupies a
certain class role
Returns all possible class roles.
Classes can be possible for
multiple different class roles.
Sets an active class role.
Returns object reference
Returns framework class registry
object of the registered class.
Returns framework root object.
Returns framework that provides
various services for service
Set relationships to other objects.
Returns relationships to other
Delete relationship to other objects.
Setting of system data through
Through implementation with an abstract base class, these methods are available with every object.
Class CL_SRM_SP_OBJECT: All methods of the interfaces IF_SRM_SP_OBJECT and IF_SRM_POID are implemented by the framework with this class. The implementation of IF_SRM_POID here is only a shortcut to the POID object and the implementation of IF_SRM_POID on the POID object.
The interface IF_SRM_SP_OBJECT has the following methods.
Returns the object reference to
the POID object
Writes the object reference to
the POID object
Returns a list of object
references to attribute value
objects of all connection
Writes a list of object
references to attribute value
objects of all connection
The interface IF_SRM_POID has the following methods.
Reader of the POID ID
Reads the service
provider space ID
Reads the entire
framework portion of the
Reads the entire service
provider portion of the
Reads the status of the
POID object
Reads a portion of the
service provider portion
of the POID
Reads a language-
dependent short text
Writes the entire
framework portion of the
Writes the entire service
provider portion of the
Writes the entire POID
Class CL_SRM_SP_CONTENT: The framework uses this class to implement all methods of the interfaces IF_SRM_SP_CONTENT and IF_SRM_CONNECTION_STATE. The implementation of IF_SRM_CONNECTION_STATE here is only a shortcut to the connection state object and the implementation of IF_SRM_CONNECTION_STATE on the connection state object.
The interface IF_SRM_SP_CONTENT has the following methods.
Sets the connection state
Reads the connection state
Returns the list of the allowed
succession statuses
Reads the connection state
Sets the connection state
Class CL_SRM_SP_CONTENT_VIS: The visualization of service provider content depends on the selected client platform. The abstract class CL_SRM_SP_CONTENT_VIS summarizes platform-independent visualization attributes and is further subject to platform-specific specialization. Below, the specialization for example WIN and WEB platforms is described.
The interface IF_SRM_SP_CONTENT_VIS is implemented with the class CL_SRM_SP_CONTENT_VIS by the framework. The interface has the following methods.
Reads the item of the
visualization object.
Reads the respective
content connection object
(backend) of the service
Reads the respective
status object for the
object of the visualiza-
Sets the respective
content connection object
(backend) of the service
Sets the respective
status object for the
object of the visualiza-
Class CL_SRM_SP_CONTENT_VIS_WIN: This abstract class is implemented by the framework. All service provider-specific classes for the visualization and maintenance of the service provider content on a Windows client platform are directly or indirectly derived from this class.
Class CL_SRM_SP_CONTENT_VIS_WEB: This abstract class is implemented by the framework. All service provider-specific classes for the visualization and maintenance of the service provider content in a Web client platform are directly or indirectly derived from this class.
Now, some example class roles for service providers and the framework will be described.
Class roles can be defined separately for every kind of application; the class roles for service providers listed here are therefore to be understood only as examples.
Class role IS_SP_SYSTEM_CLASS: The framework uses the interfaces of this class role to determine information that characterizes the service provider.
Attributes of the class role are:
Interfaces of the class role are:
Implemented by framework in
To be implemented by service
provider: this is mandatory
The interface IF_SRM_SP_SYSTEM_PARA has the following
Delivers a list of attribute
description objects that
completely describe all
service provider connection
parameter definitions
Delivers a list of attribute
description objects that
completely describe all
service provider persistent
parameter definitions
Delivers a list of attribute
description objects that
completely describe all
service provider context
parameter definitions
Class role IS_SP_CONTENT_CONNECTION_CLASS: The framework opens a connection to the service provider backend using this class role and can then execute different methods over this connection.
Attributes of the class role are:
Interfaces of the class role are:
Implemented by framework
in CL_SRM OBJECT
Implemented by framework
in CL_SRM SP_OBJECT
Implemented by framework
in CL_SRM SP_OBJECT
Implemented by framework
in CL_SRM
Implemented by framework
to CL_SRM
To be implement by service
provider; mandatory
To be implemented by
service provider; optional
To be implemented by
service provider; optional
To be implemented by
service provider; optional
The interface IF_SRM_CONNECTION brings together methods that make it possible to open and control a connection to the service provider repository.
The interface IF_SRM_CONNECTION_NEW brings together methods that make it possible to create new objects in the service provider repository.
The interface IF_SRM_CONNECTION_LOCK brings together methods that make it possible to lock objects in the service provider repository.
The interface IF_SRM_CONNECTION_ATTRIBUTES brings together methods that make it possible to read and manipulate attributes of service provider repository objects.
Class role IS_SP_NON_VISUAL_INFO_CLASS: This class role enables the framework to collect information on the service provider and service provider objects.
Attributes of the class role are:
Interfaces of the class role are:
Implemented by framework in
Implemented by framework in
Implemented by framework in
To be implemented by service
provider; optional
The interface IF_SRM_NON_VISUAL_INFO_SP has the following
Returns a list of arbitrary service
provider specific information.
Returns a list of standard
framework information.
Class role IS_SP_MENUE_WIN_CLASS: This class role summarizes interfaces that are necessary so that a service provider can integrate an menu object in the frames of the Windows client framework under Windows (client).
Class role IS_SP_VISUALIZATION_WIN_CLASS: This class role summarizes interfaces that are necessary so that a service provider can integrate an object for the visualization of its contents under Windows (client).
Class role IS_SP_VISUAL_QUERY_WIN_CLASS: This class role summarizes interfaces that are necessary so that a service provider can integrate a visual query object under Windows (client).
Class roles of the framework: As mentioned above, the classes creating a framework are determined by a late binding with defined class roles in the same way as is done for the service provider integration. Thus, all classes are interchangeable. The following table lists some class roles for classes creating a framework.
Class role
Instances of this class
are attribute value.
Client frame for Win
Attribute description
class for connection
Attribute description
class for context
POID class for SP
POID converter class
POID directory class
POID repository class
As described above, this indirection is the basis for the creation of framework variants.
The invention can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention can be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention can be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention can be implemented advantageously in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program can be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language can be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. The essential elements of a computer are a processor for executing instructions and a memory. Generally, a computer will include one or more mass storage devices for storing data files; such devices include magnetic disks, such as internal hard disks and removable disks; magneto-optical disks; and optical disks. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing can be supplemented by, or incorporated in, ASICs (application-specific integrated circuits).
To provide for interaction with a user, the invention can be implemented on a computer system having a display device such as a monitor or LCD screen for displaying information to the user and a keyboard and a pointing device such as a mouse or a trackball by which the user can provide input to the computer system. The computer system can be programmed to provide a graphical user interface through which computer programs interact with users.
The invention has been described in terms of particular embodiments. Other embodiments are within the scope of the following claims.
|Cited Patent
|Filing date
|Publication date
|May 3, 1996
|Nov 17, 1998
|Andersen Consulting Llp
|System and method for interactively transforming a system or process into a visual representation
|Jun 28, 1996
|Jul 11, 2000
|Microsoft Corporation
|Method and system for dynamic object clustering
|Jan 28, 1998
|Oct 17, 2000
|Sap Aktiengesellschaft
|Knowledge provider with logical hyperlinks
|Oct 14, 1998
|May 1, 2001
|Unisys Corporation
|Object management system supporting the use of application domain knowledge mapped to technology domain knowledge
|Feb 25, 1999
|Nov 27, 2001
|Sony Corporation Of Japan
|Process and system for managing run-time adaptation for general purpose distributed adaptive applications
|Oct 12, 2000
|Aug 6, 2002
|Sap Aktiengesellschaft
|Integrated knowledge provider with logical hyperlinks
|Jul 30, 1999
|Jul 29, 2003
|Accenture Llp
|Business components framework
|Mar 27, 2000
|Mar 2, 2004
|Accenture Llp
|System, method, and article of manufacture for test maintenance in an automated scripting framework
|Jul 30, 1999
|Apr 6, 2004
|Accenture Llp
|System, method and article of manufacture for an activity framework design in an e-commerce based environment
|Jan 12, 2001
|Apr 13, 2004
|Saba Software, Inc.
|Method and apparatus for an information server
|Jan 30, 2002
|Sep 28, 2004
|Sybase, Inc.
|Relational database system providing XML query support
|Feb 20, 2001
|Oct 26, 2004
|Microsoft Corporation
|Representing database permissions as associations in computer schema
|Apr 10, 1997
|Apr 5, 2005
|Paul M. Konnersman
|Computer-based system for work processes that consist of interdependent decisions involving one or more participants
|Demsky et al, "Role based exploration of object oriented programs", ACM ICSE, pp. 313-324, 2002.
|Diaz et al, "A farmework focus on configuration modeling and integration with transparent persistence", IEEE IPDPS, pp. 1-8, 2005.
|Jamil et al, "An object orienetd extension of XML for autonomous web applications", ACM CIKM, pp. 161-168, 2002.
|Tamai et al, "An adaptive object model with dynamic role bining", ACM ICSE, pp. 166-175, 2005q.
|Citing Patent
|Filing date
|Publication date
|Sep 8, 2003
|Oct 21, 2008
|Sap Ag
|Design-time representation for a first run-time environment with converting and executing applications for a second design-time environment
|Jun 12, 2003
|Nov 25, 2008
|Sun Microsystems, Inc.
|Protecting object identity in a language with built-in synchronization objects
|Oct 19, 2004
|Jan 6, 2009
|Microsoft Corporation
|Binding to types
|Feb 13, 2006
|Feb 15, 2011
|Nextair Corporation
|Apparatus and machine-readable medium for generating markup language representing a derived entity which extends or overrides attributes of a base entity
|Nov 28, 2005
|Jan 17, 2012
|Ubiquity Software Corporation Limited
|Service structured application development architecture
|Aug 4, 2006
|Nov 12, 2013
|International Business Machines Corporation
|System and method of processing content
|Jun 27, 2011
|Dec 3, 2013
|Kevin P. Graham
|Repository relationship programming
|Jun 3, 2011
|Dec 16, 2014
|Samsung Electronics Co., Ltd.
|Platform system with provider controlling mechanism and method of operation thereof
|Jun 12, 2003
|Feb 26, 2004
|Sun Microsystems, Inc.
|Protecting object identity in a language with built-in synchronization objects
|Sep 8, 2003
|Mar 10, 2005
|Joachim Otto
|Converting and executing applications
|Oct 19, 2004
|Jul 6, 2006
|Microsoft Corporation
|Binding to types
|Jul 29, 2004
|Sep 28, 2006
|Van De Sluis Bartel M
|Method of presenting a plurality of items
|Apr 1, 2003
|Nov 2, 2006
|Moerdijk Adriaan J
|Remote service invocation in heterogeneous networks
|Nov 28, 2005
|May 31, 2007
|Ubiquity Software Corporation
|Service structured application development architecture
|Dec 30, 2005
|Jul 5, 2007
|Ralf Becker
|Systems and methods for data retrieval and data maintenance for business (sub)objects
|Feb 13, 2006
|Aug 16, 2007
|Nextair Corporation
|Apparatus and machine-readable medium for generating markup language representing a derived entity which extends or overrides attributes of a base entity
|Aug 4, 2006
|Feb 7, 2008
|International Business Machines Corporation
|System and method of processing content
|Nov 28, 2007
|May 28, 2009
|Herbert Hackmann
|System and method for delegating a dependent business object
|Jun 27, 2011
|Jan 5, 2012
|Graham Kevin P
|Repository relationship programming
|Nov 8, 2010
|May 10, 2012
|Microsoft Corporation
|Instantiating a Software Development Environment From an Environment Class
|Dec 17, 2010
|Oct 3, 2013
|Hewlett-Packard Development Company, L.P.
|Route a Service
|U.S. Classification
|717/120, 717/116, 717/108
|International Classification
|Cooperative Classification
|European Classification
|Dec 22, 2003
Owner name: SAP AKTIENGESELLSCHAFT, GERMANY
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SCHROEDER, NORBERT;REEL/FRAME:014211/0997
Effective date: 20031124
|Jan 22, 2004
Owner name: SAP AKTIENGESELLSCHAFT, GERMANY
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:SCHROEDER, NORBERT;REEL/FRAME:014279/0223
Effective date: 20031124
|Nov 26, 2009
|Fee payment
Year of fee payment: 4
|Oct 24, 2013
|Fee payment
Year of fee payment: 8
|Aug 26, 2014
Owner name: SAP SE, GERMANY
Effective date: 20140707
Free format text: CHANGE OF NAME;ASSIGNOR:SAP AG;REEL/FRAME:033625/0334


text:
Slide to see the images
Meet Spot!!! He is a new GDAR member. Spot is about 6 months. He and his brother were out fending for themselves in this heat until their fate changed and a kind hearted lady picked them up from alongside the busy highway. She fed, bathed and deticked them. She did all the hard work and then reached out to our rescue after no one came forward to claim them. These boys have a natural bob tail and definitely have some rat terrier in them. They will be vetted July 7th and neutered as soon as we can get an appointment. After that, they will be looking for special place to call home. Spot and his brother Bolt can be adopted separately. Adoption fee will be $125.00 each.

subset: commoncrawl


text:
Liz Claiborne
Liz Claiborne leopard flats
Dress Like a Boss Without Spending Like One: Liz Claiborne long-sleeve knit blazer ($50) is just the right neutral hue.
"Lady Jane Gray" by tjinwa ❤ liked on Polyvore featuring Charles Jourdan, Gianvito Rossi and Liz Claiborne
"pink & grey" by divacrafts on Polyvore featuring moda, Donna Karan, City Chic, Copper Key, Christian Louboutin, Hermès, Badgley Mischka, Liz Claiborne y Original
Versatility is the ultimate secret weapon. This Liz Claiborne compact crossbody bag holds all the essentials, and the sophisticated luggage color goes with anything. Available exclusively at JCPenney.
"Teacher Outfits on a Teacher's Budget 146" by allij28 on Polyvore
Liz Claiborne Liz Claiborne for women--This one I wore...and wore, and wore after I graduated college. I guess you could call it my career fragrance. Love the bottle, very stylistic of the 1980's and 1990's.
CURVE * Liz Claiborne * Perfume for Women * 3.4 oz *
Liz Claiborne Perfume. Went through a few bottles of this!
Floral Dress by pkoff on Polyvore featuring moda, Karen Millen, ALDO, Tory Burch, Liz Claiborne and Mixit


text:
- Description
Quick Overview
Pond's Men Energy Charge Gel Moisturizer combines the cool effects of the gel with the smoothness of a moisturizer. This gel moisturizer provides a gentle way for your tough skin and makes it look smooth. Its multivitamin ingredients offers quick yet long lasting results and the moisturizer also comes with advanced cleaning properties to keep your pores unclogged and clear. You'll get an even looking, fairer skin. It reaches deep into your skin cells and nourishes your skin without leaving your face oily. Give your face the effective treatment with Pond's Men Energy Charge Gel Moisturizer. buy it right away and get started towards better skin!
Features & Benefits :
- Instantly awakens tired skin to make it look healthy & energized.
- Has fairness vitamins known to nourish from deep within to help brighten dull skin & lighten dark spots.
- Light & fast absorbing gel.
- Reviews (0)
Ask Nykaa (0)
Have a question on this product? Write a question and earn 100 reward points.
No questions yet. Ask and answer questions to earn 100 points (=Rs.1) each time!


text:
Hudson Valley Lighting 3903-PN Wentworth Polished Nickel Wall Sconce
Hudson Valley Lighting 3903-PN Wentworth Polished Nickel Wall Sconce. Taking inspiration from a honey hive, Wentworth adds fine details to a Mid-Century modern design. Tubes of mouth blown glass leave the inner candlestick visible while blurring the bulb with a hand cut, honeycombed pattern, creating a beautiful refractive
Model No.: 3903-PN
Number of Bulbs: 3
Bulb Included: No
Bulb Type: Xenon
Width: 16.25''
Lead Wire: 7''
Collection: Wentworth
Bulb Wattage: 35W
Finish: Polished Nickel
Height: 10.25''
Extension From Wall: 3.75''
Warranty: Manfacturer
Item Unit: 1
- Release Date
- Thursday, January 01, 2015
data-bread-crumbs="" data-lang="en">


text:
ERIC Number: ED205532
Record Type: RIE
Publication Date: 1981-Mar
Pages: 15
Abstractor: N/A
Reference Count: 0
Preliminary Development of an Affective Work Competencies Testing Program.
Beach, David P.
The lack of communication between educators and employers concerning the characteristics of a successful worker is explored. The need for a stronger emphasis on positive affective work competencies (work values, habits, and attitudes) is demonstrated. The failure of many educators to help their students develop proper work habits and attitudes is discussed and the general unavailability of appropriate materials and training procedures is considered a factor in this regard. A summary of preliminary investigations conducted to identify, define, and measure various affective work competencies (AWC's) is given. The development of pilot affective learning modules and testing procedures is described, and the results are explained. Recommendations to improve the utilization of AWC's are outlined. (Author/AL)
Descriptors: Administrator Attitudes, Attitude Measures, Disadvantaged Youth, Education Work Relationship, Employee Attitudes, Measurement Techniques, Pilot Projects, Program Development, Rating Scales, Student Attitudes, Teacher Attitudes, Testing Programs, Values, Vocational Education, Work Attitudes
Publication Type: Speeches/Meeting Papers; Reports - Research
Education Level: N/A
Audience: N/A
Language: English
Sponsor: N/A
Authoring Institution: N/A
Identifiers: Affective Work Competencies Inventory
Note: Paper presented at the Annual Meeting of the Eastern Educational Research Association (4th, Philadelphia, PA, March 1981).


text:
© 2016 State Bicycle Co..
State Bicycle spacers come in gold, chrome, black or white finish. Will fit all State Bicycle models with the exception of the City Bike models. Will also fit many other non-State Bicycle Co. models but please check the required measurements of any non-State Bicycle with the owner's manual or a professional bicycle mechanic to ensure proper fit.
Spacers are sold in a pack of 3.
5-year Warranty on all bicycle frames
1-year Warranty non-consumable parts
2-year Warranty on Essor USA products
Warranty activated only after you submit proof of professional assembly.
We ship six days a week. Tracking information is provided upon shipment. Learn more about our Shipping Policies.
If you wish to return your purchased item, you may do so within 7 days of delivery. Learn more about Returns & Exchanges.
We pride ourselves on having a friendly and knowledgeable staff. Contact Us and we'd be happy to help you out in any way we can.


text:
Women's Zeal Optics 'Brewer' 57Mm Polarized Plant Based
Glare-reducing polarized lenses provide a performance-ready finishing touch for lightweight sunglasses in an iconic retro silhouette. In conjunction with their Z-Resin frames, Zeal Optics is piloting efforts to completely remove crude oil from sunglasses production. E-llume lenses offer complete protection from UVA, B and C as well as HEV light ... Learn More


text:
A Whimsical Art Print to Dress Up Your Wall
Never the wrong time to get lucky, right?
Never the wrong time to get lucky, right?
Waterproof your boots, de-pill your sweaters, and more.
It's going to be a long and frigid few months.
Because vacation photos were meant to be viewed blown-up on a wall.
No obscure grape knowledge needed.
A.k.a. our new favorite holiday.
Pillows, Chanel makeup remover, and Armor All are on the list.
Who wants to work in a depressing gray cubicle?
Making the most of your Prime account.
Only one style star can win it all.
Some shoe envy, but a lot of LOL, too.
Sushi clutches, ham-hock bags, and SpongeBob cross-bodies.
Saying good-bye to fashion month in Louis Vuitton and Chanel.
Add a little Italian bombshell into your wardrobe.
Today's face-off pits Stella McCartney against Céline.
Flat, stacked, and everything in between.
It may date back to the 19th century, but it looks completely modern.
It's a battle for who wore Acne better.
It's almost like being in a fancy Italian Alps chalet.
Including a spotting of Alexander Wang for H&M in the street-style wild.


text:
Sign in to retrieve a saved callback list.
Scores based on 118 reviews
Invoice history based on 100 reviews.
At Oaklands Tree Care, We provide a comprehensive range of services that include all your tree surgery requirements throughout London, Dartford, Bromley, Kent and surrounding areas. We guarantee a reliable service with a quick response to every call.
Oaklands treecare has now been established for over 20 years and have built up a large number of well known Clients which we are approved contractors of:
Privet Home-owners
Over the last 20 years Oaklands Treecare has built a large number of home-owners which constantly use us several times a year, as we provide a prompt service and a very good standard of work with a reasonable price.
Our staff provides a tidy and professional service to both domestic households and commercial clients. No job is too big or small.
We maintain our high standards throughout our staff. We train all our staff in all aspects of the industry and offer vast amount of experience in all aspects of tree care.
We maintain high safety regulations while working, so the whole process is carried out with minimum danger. We carry out all aspect of your job according to set procedures with the safety of our employees and customers being of paramount importance.
When you're looking for a tree surgeon look no further than Oaklands. Call us today for further information or to discuss your requirements with our friendly, helpful team 0800 197 8949
South Croydon, Sevenoaks, Orpington, London, Bromley, Bexley, Erith, Gravesend, Medway,


text:
Ron Glass
9,446pages onAdd New Page
this wiki
this wiki
Ad blocker interference detected!
Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers
Wikia is not accessible if you've made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.
Ron Glass (July 10, 1945 – November 25, 2016) portrayed Doctor Streiten in the Agents of S.H.I.E.L.D. episodes Pilot and The Magical Place. Archive footage of his appearances also appear in the episodes T.A.H.I.T.I. and Yes Men.
- Ron Glass previously worked with Joss Whedon in Firefly and Serenity.
- Ron Glass is one of the actors to portray characters for both Marvel Studios and DC Entertainment. He voiced News Reporter in Superman: The Animated Series.


text:
The trombone is a musical instrument in the brass family. Like all brass instruments, sound is produced when the players vibrating lips (embouchure) cause the air column inside the instrument to vibrate. Nearly all trombones have a telescoping slide mechanism that varies the length of the instrument to change the pitch. Instead of a slide, the valve trombone has three valves like those on a trumpet. The word trombone derives from Italian tromba (trumpet) and -one (a suffix meaning 'large'), so the name means 'large trumpet'. The trombone has a predominantly cylindrical bore like its valved counterpart the baritone horn and in contrast to its conical valved counterparts, the euphonium and the orchestral horn.
Contributions by Esolomon, 184.108.40.206, and Infrogmation.


text:
Note: Sample below may appear distorted but all corresponding word document files contain proper formattingExcerpt from essay:
Ohio Army National Guard consists of a plethora of people who are seeking to make a difference in the world they serve. They will honor and protect the United States in all aspects of their life. This is done by using ships and plane to prepare for war or to help others if an epidemic should arise. These individuals are brave individuals who believe in changing lives for the positive through their hard work with the army. One will discuss in more detail what is proposed to make this part of the army better through much research and analysis.
Imagine studying the practices of those who are in Human Resources in the Army National Guard (Association of African Universities, 2011). What will one discover through this process? Is he or she able to find sufficient evidence through this process in which discrimination is taking place among those who are not getting hired? One will discuss the methodology in which to conduct an investigation with much integrity and ethics.
While those in leadership are striving to make a difference at the Ohio Army National Guard, many have the capabilities of making sure that everyone is provided an opportunity for equal employment opportunities no matter what his or her background is from the past to the present (Department of Labor, 2011). In essence, people are overlooked that are possibly good workers, but those that are hiring are discrminating against them. This is why it is crucial that one makes sure that there is something done about it, so that everyone is provided an equal chance to make a living in the world today (U.S. Equal Employment Opportunity Commission, 2011).
Problem Statement
The Ohio Army National Guard is not meeting their Ohio Governor Minority leadership metric goals.
Research Objective
1. Is there a qualified pool of applicants to draw from to support the metric goals in Ohio?
2. Is the Ohio Army National Guard's hiring process projecting best practices in the industry?
3. Is there a difference in metric goals, current metrics and pool of applicants in other like-sized states (Pennsylvania, Michigan, Illinois, Georgia). Assumptions
Assumptions will occur with any study that takes place no matter where a person may live in the world. Everyone will make assumptions, which is why it is important to address them. Males and females will decide to become equally competitive within the Ohio Army National Guard. Both genders will act unethical when hiring others. A person's standards will remain relative. Hiring practices are not the best in the industry. The differences are all the same for all applicants. The review of literature will also become an important aspect to this particular research.
Definition of Terms
Four areas of definitions will become vital for this study. A person's gender will become referred to whether or not they are male or female. Behavior will consist of how one thinks, feels and behaves on a daily basis. Ethics is determined by how a person will believe what is right and wrong based on his or her decision-making skills. Army is in reference to that of the Ohio National Guard that is a part of the United States
Limitations and Delimitations
Limitations with the study are important. This is because people are in need of acting themselves by making mistakes. Individuals will want to tell others, so this can cause gossip and break confidentiality within the division. The researcher may face consequences because of how individuals are not able to remain quite about the study at hand.
Delimitations for this manuscript will become quite important. The study will not attempt to favor one gender over the other. One will not determine the depthness of one's background. Members of the Army are those that will become subject to the study. Summary This study primarily focuses on the issue of minorities, and the hiring practices that occur within the Ohio National Army. In fact, by having a problem statement and objectives in place, the researcher is able to stay focused on the task at hand when gathering the necessary data. However, by keeping an open mind on finding out what is taking place, one is able to make the necessary changes needed in the U.S. (Mattke, 2010). People will make assumptions, but the goal is to refute them through this research. Now it is important to discuss the current literature.
Chapter 2: The Review of Literature
The National Guard, the oldest component of the Armed Forces of the United States and one of the nation's longest-enduring institutions, celebrated its 370th birthday on December 13, 2006. The National Guard traces its history back to the earliest English
colonies in North America. Responsible for their own defense, the colonists drew on English military tradition and organized their able-bodied male citizens into militias
(National Guard, 2011).
The militias protected citizens from the Indian attack. This included that of foreign invaders, which helped "to win the Revolutionary War" (National Guard, 2011a, para 2). After independence fully occurred, those who authored the Constitution felt empowered to have an army that was highly disciplined. Through this, they appointed officers as well as training. Because of this effort, the organziation became what it is today (National Guard, 2011a).
During the 19th century, the size of the Army was quite small; however, the militia did provide most of the troops needed for the Mexican, Civil and Spanish War. By 1903, defense legislation increased as a means in which to have the National Guard (National Guard, 2011a). They were known as the "Reserve force for the U.S. Army" (National Guard, 2011a, para 3). Furthermore, World War 1 had 40% of those in the Naitonal Guard to go to France for combat; additionally, they were the first to go overseas for World War 2 as well as to fight (National Guard, 2011a).
After World War II, the National Guard units in aviation became known as "the Air National Guard" (National Guard, 2011a, para 4). They were known as the Reserve component and were the newest in the world. On many occassions, these individuals were sent out to fight the Cold War, Korea and Vietnam (National Guard, 2011a). At least "23,000 Army and Air Guardsmen were called up for a year of active duty; some 8,700 were deployed to Vietnam" (National Guard, 2011a, para 5). Additionally, 75,000 or more of the Army and their Air Guardsmen were sent to Desert Storm as of 1991 (National Guard, 2011a).
Over the years, they have taken part in places, such as "Haiti, Bosnia, Kosovo and Iraq" (National Guard, 2011a, para 6). They also managed to make sure that they took care of terrorism issues domestically and abroad to protect America (National Guard, 2011e). After Hurricane Katrina, 50,000 troops were sent to help out with this natural disaster (National Guard, 2011e). Many of the Guardsmembers are serving in Iraq as well as Afghanistan currently with them coming home by 2014. These individuals are all over the globe serving the U.S. through protecting its citizens from anything that occurs naturally as well as with extremists who are trying to harm others for no given reason (National Guard, 2011a).
The Guard answers the call, at home or abroad. The incredible versatility of the National
enables its troops to respond to domestic emergencies, combat missions, counterdrug efforts, reconstruction missions and more -- all with equal speed, strength and efficiency.Whether the call is coming from the state governor or directly from the president of the United States, Guard Soldiers are always ready and always there
(National Guard, 2011b).
Through this opportunity, one gets to serve the community as well as his or country and state. The primary operations occurs in one's home state (Ohio Army and Air National Guard, 2010-2011). This is done by means of the general and his or her governor (Ohio Government, 2011). A person may take part in community efforts or serve overseas in another part of the world (National Guard, 2011f). One undergoes much preparation, especially under the direction of the president (National Guard, 2011b).
Top 3 Priorities
The National Guard's number one priority is the security and defense of our homeland, at home and abroad. Their second priority is that of "support the Global War on Terrorism here and abroad. America insists on a relevant, reliable and ready National Guard that is transformed for the 21st Century (National Guard, 2011g).
Eligibility Requirements
To qualify for enlistment into the National Guard, one needs to (National Guard, 2011c):
• Be between the ages of 17 and 35 (unless you have prior U.S. military service, or a specialized professional skill, such as a chaplain, lawyer or certain medical specialties) (National Guard, 2011c).
• Be a U.S. citizen or a legal permanent resident alien (National Guard, 2011c).
• Meet necessary medical requirements and moral requirements. For a list of legal violations which will permanently disqualify you from serving (National Guard, 2011c).
Currently, the National Guard will not accept any applicants convicted of a felony. Some minor crimes may…[continue]
"Ohio Army National Guard Consists Of A" (2011, June 22) Retrieved December 7, 2016, from http://www.paperdue.com/essay/ohio-army-national-guard-consists-of-a-51316
"Ohio Army National Guard Consists Of A" 22 June 2011. Web.7 December. 2016. <http://www.paperdue.com/essay/ohio-army-national-guard-consists-of-a-51316>
"Ohio Army National Guard Consists Of A", 22 June 2011, Accessed.7 December. 2016, http://www.paperdue.com/essay/ohio-army-national-guard-consists-of-a-51316
evidence and analysis: "The national guardsmen violated the Students right of assembly at Kent State University on May 4, 1970." The paper will describe the evidences and circumstances of May 4, 1970 in details, the analysis and the observation of the relative facts will be included in the paper so that the readers can gain effective information regarding the day in which the nation lost four lives. The paper
The National Guard, as anticipated by the Constitution's framers, was now a military reserve ready to serve the national interest. The National Guard, while getting large amounts of federal funds and growing in size, continued to struggle to find its true role in military operations and readiness. The natural disasters and civil disorder incidents in which Guardsmen were called to help supported their cause. These included such events as
Drones Preliminary Analysis of Drones Drones have become increasingly popular among the U.S. army and the reason is that they have ability to transform (has already transformed to quite an extent) the way America has been fighting and the way it has been thinking about its wars. According to the intelligence officials of the United States, these unmanned aerial vehicles that are commonly called drones have proved to be one of the
" In other words, republicanism in an expanding state would inevitably lead to more despotic, aristocratic, and monarchical regimes. Hence, if the U.S. were to follow a policy of expansion, it would, at least, theoretically conflict with its republican origins. Interestingly, one of the leading proponents of republicanism, Thomas Jefferson had become the third U.S. President after an unexpected electoral crisis in the elections of 1800. He was a great champion
NAFTA Historical Beginning of NAFTA (with specific bibliography) NAFTA Objectives What is NAFTA The Promise of NAFTA NAFTA Provisions Structure of NAFTA Years of NAFTA (NAFTA not enough, other plus and minuses).. Environmental Issues Comparative Statements (Debate) NAFTA - Broken Promises NAFTA - Fact Sheet Based Assessment NAFTA & Food Regulation NAFTA - The Road Ahead NAFTA in Numbers Goal Fulfillment Major Milestones Consolidated Bibliography This study set out to examine the inner workings of the North American Free Trade Agreement. The aim of this study is
An estimated 275 "metric tons" of cocaine (a metric ton is 90% of a full ton, which is 2,240 pounds) arrive in Mexico each year, ready for transport into the U.S. -- and of those 275 metric tons the authorities average seizing about 36 metric tons. Doing the math quickly that indicates that about 239 metric tons of cocaine arrive in the U.S. annually, according to the GAO figures. As
Catholic church and public policy have remarked that the members of American clergy in general, without even excepting those who do not admit religious liberty, are all in favour of civil freedom; but they do not support any particular political system. They keep aloof from parties, and from public affairs. In the United States religion exercises but little influence upon laws, and upon the details of public opinion; but it


text:
Home /
Our Sources / About Us
/ FAQs /
Advanced Search
Not what you're
looking for? Try an advanced search.
Official citation and/or docket number and footnotes (if any) for this case available with purchase.
Learn more about what you receive with purchase of this case.
APPEAL from the Circuit Court of Kankakee County; the Hon.
VICTOR N. CARDOSI, Judge, presiding.
The defendant, Mary Fay Bishop, pled guilty to an information filed in the circuit court of Kankakee County charging her with voluntary manslaughter. Thereafter she was sentenced to a term of not less than 5 nor more than 10 years in the penitentiary.
The first issue presented for review is whether the trial court complied with Supreme Court Rule 401 (Ill. Rev. Stat. 1971, ch. 110A, sec. 401) by determining that the defendant understood her rights before she waived her right to be charged by an indictment.
The record discloses that the defendant was represented by counsel of her choosing and not by the public defender. After the State's Attorney presented for filing an information which charged the defendant with having committed the crime of voluntary manslaughter, the trial court gave a lengthy, detailed and comprehensive explanation to her concerning her right to a preliminary hearing and her right to be charged by an indictment should a grand jury desire to do so. The composition of a grand jury was explained to the defendant as well as the possible sentence which could be imposed for the crime of voluntary manslaughter. The following colloquy ensued between the court and the defendant:
"THE COURT: * * * You cannot be prosecuted under this information which has been presented to me unless you yourself voluntarily and intelligently decide that you are willing to waive and that means to give up, your right to a preliminary hearing and to indictment by the Grand Jury.
You can say, "I don't want to have this matter presented to the Grand Jury. I am willing to let the prosecution proceed by way of the information." That is what I just read to you. Or you can say, "I want to have this presented to the Grand Jury."
Now, do you understand what I have just said to you?
DEFENDANT: Not really.
THE COURT: What don't you understand?
COUNSEL FOR THE DEFENDANT [to the defendant]: Remember I talked to you and we decided that you should you said you would waive it?
DEFENDANT: I will waive it.
THE STATE: Might I add for the record first may I state something the witnesses are subpoenaed by the State and are ready this morning for preliminary hearing, and the Grand Jury will reconvene the 28th of March, so if there is any question of delay we will assure the defendant we are prepared to proceed with preliminary hearing and to indictment it will be promptly made or the matter will be presented to the Grand Jury promptly rather.
THE COURT: I am informed that the State has all their witnesses here and they are ready to proceed with the preliminary hearing, if that is what you want.
THE COURT: Do you want to waive it?
DEFENDANT: Yes. Yes.
THE COURT: The other thing I want to explain to you is this. If the Grand Jury indicted you, you would have a right to a trial by jury. If you proceed by way of information, you still have a right to a trial by jury. You have a right to plead either guilty or not guilty. If you plead not guilty, you have a right to a jury, right to your lawyer, right to defend yourself against the charges is that clear to you?
DEFENDANT: Yes.
THE COURT: You still want to waive?
COUNSEL FOR THE DEFENDANT: Yes.
DEFENDANT: Yes, sir, I do."
Supreme Court Rule 401 (Ill. Rev. Stat. 1971, ch. 110A, sec. 401) provides:
"401. (Supreme Court Rule 401) Waiver of Counsel; Waiver of Indictment.
(a) * * *
(b) Waiver of Indictment. Any waiver of indictment shall be in open court. The court shall not permit a waiver of indictment by a person accused of a crime punishable by imprisonment in the penitentiary unless he is represented by counsel or has waived counsel as provided in paragraph (a) of this rule and unless the court, by addressing the defendant personally in open court, has informed him of and determined that he understands the following:
(1) the nature of the charge;
(2) the minimum and maximum sentence prescribed by law, * * *; and
(3) that he can be prosecuted for the offense only after indictment by a grand jury unless he waives indictment."
• 1 The issue raised by the defendant is not that the trial court failed to comply with Supreme Court Rule 401 but that the court failed to determine if the defendant did in fact understand her rights before waiving indictment. The defendant is relying upon that portion of the record where she responded to the court's question in regard to her understanding as to what had been said to her and to which she replied, "Not really." The defendant would have us to consider only her equivocal response and ignore the rest of the record. This we cannot do since it is well established that on review, the reviewing court shall consider the entire record. People v. Keene, 1 Ill. App.3d 720, 274 N.E.2d 130; People v. Grant, 1 Ill. App.3d 658, 274 N.E.2d 603.
Any uncertainty as to the defendant's understanding as to her rights before waiving prosecution by indictment was in our opinion erased by admonitions of the court and replies made by the defendant subsequent to her equivocal answer which she now relies upon for reversal and remandment. It should be noted that the defendant raises no question as to the adequacy of the court's admonitions nor does she contend that she did not understand the same or that her waiver was involuntary. Precisely, the defendant is attempting to direct this court's entire attention to one response that she made to a query of the trial court and would further have us to find this one response to be of such import that it casts an aura of lack of understanding upon all the proceedings held pursuant to Supreme Court Rule 401. Our Supreme Court in determining an appeal from a conviction based upon a plea of guilty recently held that "`the remarks and advice of the court must be read in a practical and realistic manner' and that `[t]he essentials have been complied with if an ordinary person in the circumstances of the accused would understand them as conveying the information required by the rule.'" People v. Chatman, 56 Ill.2d 233, 236.
• 2 No useful purpose would be served by making a further examination and analysis of the record regarding the trial court's admonitions and the defendant's responses. We believe it suffice to say that it is clear that the essentials of Supreme Court Rule 401 were complied with and that the record amply reflects that the defendant understandingly made a waiver of her right to be prosecuted by indictment. The defendant would have us subscribe to a theory that even if she fully understood the proceedings in the trial court there should nevertheless be a reversal and remandment of this case since the record fails to disclose that the court did in fact "make a determination" that she had made such an understanding. We do not subscribe to such a theory for there is no requirement that the court make a specific finding or elicit a specific expression of understanding where the record in its entirety shows that the waiver of indictment was intelligently, understandingly and voluntarily made. We have such a record in the instant case, and the judgment of conviction entered by the trial court should be affirmed.
• 3 We do, however, agree and further note that the State agrees with the defendant's contention that the minimum sentence imposed upon her is in excess of that prescribed by the Illinois Unified Code of Corrections. The defendant was convicted of voluntary manslaughter, a Class 2 felony (Ill. Rev. Stat., ch. 38, sec. 9-2 (amendment affective Jan. 1, 1973)). The minimum term of imprisonment for such an offense shall not be greater than one-third of the maximum term set by the court. (Ill. Rev. Stat., ch. 38, sec. 1005-8-1(c)(3).) Since the defendant's appeal was pending after January 1, 1973, she should be resentenced under the Unified Code of Corrections. (See People v. Harvey, 53 Ill.2d 585, 294 N.E.2d 269.) Therefore, pursuant to the authority vested in this court pursuant to Supreme Court Rule 615 (Ill. Rev. Stat., ch. 110A, sec. 615) we reduce the minimum sentence of the trial court to a term of 3 years and 4 months with the maximum term of sentence, being 10 years, to remain unchanged.
For the reasons set forth the judgment of the circuit court of Kankakee County and the sentence imposed thereon as modified by this court is affirmed.
Affirmed as modified.
ALLOY and DIXON, JJ., concur.
© 2002 VersusLaw Inc.
Our website includes the main text of the court's opinion but does not include the
docket number, case citation or footnotes. Upon purchase, docket numbers and/or
citations allow you to research a case further or to use a case in a legal proceeding.
Footnotes (if any) include details of the court's decision.
Official citation and/or docket number and footnotes (if any) for this case available with purchase.
Learn more about what you receive with purchase of this case.
LRC, Inc. About Us


text:
Rose TrioLife is complicated enough. Sending roses on Valentine's Day shouldn't be. That's why our simple, elegant and expressive Rose Trio is a perfect Valentine's gift. Give her your love with this simple, elegant love-offering of 3 long stemmed roses in red, white and pink, in a bed of greens and baby's breath, arranged in a classic glass bud vase with red ribbon.
You are viewing a Canada Flowers Original floral gift, found nowhere else online! Brought to you by Canada Flowers, Canada's National Florist.
Delivery Info
Free same day flower delivery across Canada on most orders placed online by 2 pm Eastern time, or 12 noon on weekends.
- Sunday delivery is available in most larger cities across Canada.
- Delivered items may vary. Read about substitutions.


text:
Vandy Collection Solutions Pvt. Ltd.
RS1,25,000 To 3,00,000Chandigarh, Zirakpur, Ambala, Baddi, Kangra, Mandi, Shimla, Jammu, Jalandhar, Ludhiana, Patiala, Dehradun
Handling sales of Credit cards of Reputed bank.
Key Skills : field executive,sales / marketing,market executive,marketing assistant,marketing coordinator,sales associate,sales executive,marketing,business...
Marketing Executive ( 0 - 1 yrs)
Feadral Home Appliances
RS1,00,000 To 1,25,000Zirakpur, Ambala, Bhiwani, Hisar, Karnal, Kurukshetra
Field Work Meeting with Clients and Sales
Key Skills : executive marketing,marketing executive,sales executive,business development executive
Galaxy Co
RS70,000 To 1,50,000Chandigarh, Zirakpur, Panchkula, Ambala, Bathinda, Ludhiana, Patiala, Rajpura
1.Should have a Graduate Degree with work experience 2.Excellent analytical & presentation skills 3.Strong interpersonal skills and relationship management skills, ability to communicate and manage well at all levels of the organization
Key Skills : sales executive,marketing,business development,sales
Opening for Managers in Digital Marketing ( 1 - 3 yrs)
Itronix Solution
RS1,50,000 To 3,00,000Chandigarh, Zirakpur, Ambala, North Delhi, Indore, Amritsar, Jaipur, Delhi
Opening for Managers in Digital Marketing Location: Amritsar, Chandigarh, Ambala, New Delhi, Jaipur Indore Job Summary: We are looking for smart and dynamic candidates with 2-6 years of Experience with Online Sales, must really aware about c...
Key Skills : sales executive,marketing executive,business development executive


text:
Offshore Sportsbook Reviews
Sports Betting Online can get you in on the action, no matter what your sporting passion. This exciting and creative sportsbook allows total access and control to all of your wagering wants and needs, keeping you up to date with the latest odds and sporting information industry wide, so you never miss a beat. And with its popular payment options, you...
NetBet is the kind of online sportsbook that people can actually trust, in sharp contrast to most of what is out there. NetBet has been around for a decade, and it shows. It has the kind of introductory bonus offer that is going to effortlessly draw people in, and they will be able to enjoy plenty of different games while they...
Circus Sportsbook (licensed Belgium) is a very popular online casino and off shore betting site that attracts players of all skill levels from around the world. This successful offshore sportsbook is operated by Ardent Group. Ardent Group has years of experience in the gaming industry and presently operates more than twenty offshore betting sites in Belgium. Founded in 2011, Circus Sportsbook...
This is one of the first online sportsbooks. They are known for their stellar domain (sportsbook.com) and celebrity spokeswomen, who have included Brooke Burke and most recently Carrie Stroupe. Support from "Sportsbook" is offered via live chat, email and phone. Cashouts are available instantly to Neteller and Firepay. In terms of the software, "Sportsbook" has you covered. Everything is easy to find and...
The highly rated European casino LeoVegas is sinking its teeth into the sports betting market. This brand has a reputation for offering a mobile-friendly platform, fast customer support, and solid bonus offerings and promotions. The new Sportsbook for LeoVegas is now live and it could be one of the best options on the web. It has a good selection of betting...
Latest Promotions
Grab a 50% Opening Canadian Deposit Offshore Bonus with NetBet
Mon, 07 Nov 2016
Mon, 07 Nov 2016
Score a 50% Welcome Prize from SBO Sportsbook
Fri, 07 Oct 2016
Fri, 07 Oct 2016
Enjoy a 25% 'Profit Boost' for American Sports Bets in October
Thu, 06 Oct 2016
Thu, 06 Oct 2016
SBO Sportsbook Giving 50% Welcome Offshore Bonus up to $500
Wed, 07 Sep 2016
Wed, 07 Sep 2016
NetBet Gives a 50% New Depositor Offshore Bonus up to $50
Sun, 07 Aug 2016
Sun, 07 Aug 2016
Summer Special Bonus for Soccer Betting at BetPhoenix
Thu, 28 Jul 2016
Thu, 28 Jul 2016