Patent application number | Description | Published |
20080306617 | CORE OBJECT-ORIENTED TYPE SYSTEM FOR SEMI-STRUCTURED DATA - A type system employing structural subtyping is disclosed herein. A core type system supports several structural types, such as stream, choice, intersection and sequence. Also part of the core type system is a new invariant type, which denotes values whose dynamic type is the same as its static type, and type restrictions for limiting a range of a base type. Furthermore, a streamlined structural version of delegates, called structural delegates and a validation method thereof are introduce into the type system. To further facilitate type safety, strict statically checked interface casts are introduced. | 12-11-2008 |
20080313609 | CORE OBJECT-ORIENTED TYPE SYSTEM FOR SEMI-STRUCTURED DATA - A type system employing structural subtyping is disclosed herein. A core type system supports several structural types, such as stream, choice, intersection and sequence. Also part of the core type system is a new invariant type, which denotes values whose dynamic type is the same as its static type, and type restrictions for limiting a range of a base type. Furthermore, a streamlined structural version of delegates, called structural delegates and a validation method thereof are introduce into the type system. To further facilitate type safety, strict statically checked interface casts are introduced. | 12-18-2008 |
20090102805 | Three-dimensional object simulation using audio, visual, and tactile feedback - A multi-sensory experience is provided to a user of a device that has a touch screen through an arrangement in which audio, visual, and tactile feedback is utilized to create a sensation that the user is interacting with a physically-embodied, three-dimensional (“3-D”) object. Motion having a particular magnitude, duration, or direction is imparted to the touch screen so that the user may locate objects displayed on the touch screen by feel. In an illustrative example, when combined with sound and visual effects such as animation, the tactile feedback creates a perception that a button on the touch screen moves when it is pressed by the user like a real, physically-embodied button. The button changes its appearance, an audible “click” is played by the device, and the touch screen provides a tactile feedback force against the user's finger. | 04-23-2009 |
20090125880 | POLYMORPHIC SOFTWARE ARCHITECTURE - A polymorphic software architecture is provided by which the shape of the architecture is enabled to be dynamically changed by splitting and fusing various architectural components (which may also be called “elements”) responsively to the environment in which the software executes, without changing the application's code. The splitting and fusing points determine, for example, the partitioning of functionality and data across architecture components, communication among the components, and the allocation of resources to the components. A profile of an end-user, or a profile of the runtime environment that supports the end-user, may be used to drive the shape of the software architecture so that overall design goals are met upon initial software deployment, and maintained as the profiles change. | 05-14-2009 |
20090150422 | REPRESENTING POINTERS AND BOXING IN ENVIRONMENTS USING ONLY REFERENCE TYPES - An arrangement by which pointers may be represented in a restricted software execution environment that provides access to only reference types but not pointers is realized by modeling both pointers and value type boxing using a set of boxes (i.e., containers) which describe how to retrieve the value associated with the pointer, and emitting code for accessing the set of boxes. A decompiling and recompiling process is utilized in which code arranged to run in an execution environment that supports pointers is scanned to reveal pointer and boxing usage. In one illustrative example, code is responsively emitted to create one or more specific boxes. At runtime in the restricted execution environment, an instance of a box class is created to thus emulate a pointer to the value. | 06-11-2009 |
20090150907 | MAPPING BETWEEN DISPARATE DATA MODELS VIA ANONYMOUS FUNCTIONS - Systems and methods that transform an input stream to an output stream by employing a hybrid of declarative features and procedural features. A transformation component includes a declaration component that identifies data types, which enables users to define customized event(s) whereupon user functions can be called, and a procedural component that executes the logic of the functions that are called to perform operations of the functions. | 06-11-2009 |
20090235282 | APPLICATION REMOTE CONTROL - Application remote control is affected across execution contexts. In one instance, input can be acquired from controlled applications and employed by other applications. Additionally or alternatively, remote control can be employed to test applications while minimizing unintended changes to applications under test caused by observation. | 09-17-2009 |
20090319496 | DATA QUERY TRANSLATING INTO MIXED LANGUAGE DATA QUERIES - Data source queries may be specified in various languages, such as SQL, XQuery, and object-oriented languages, and each language may have various linguistic features that enable different types of queries. It may be advantageous to formulate mixed language queries having portions specified in a first language and portions specified in a second language, and to provide mixed language query evaluation components that can parse portions of queries of different languages. It may also be advantageous to permit the translation of single language queries into multiple languages to be parsed by such mixed language query evaluation components. Such techniques may permit queries to utilize linguistic features and processing techniques of one language that are less efficient, less direct, or simply unavailable in another language. | 12-24-2009 |
20090319497 | AUTOMATED TRANSLATION OF SERVICE INVOCATIONS FOR BATCH PROCESSING - The utilization of data services (such as web services) may involve the invocation of services, which may reduce performance and overburden the server. In some scenarios, the invocation may be specified in a language that does not support batch invocation, but it may not be feasible to re-code the invocations in a language that supports batching. Instead, the service invocations may be automatically translated into a batch logic specified in a batch-capable language and sent to the service as a batch. For example, a local proxy may receive a language-integrated query having two or more service invocations, compile the query into an expression tree including the two or more invocations, and send the expression tree to the service host to achieve the batch processing of the service invocations. | 12-24-2009 |
20090319498 | QUERY PROCESSING PIPELINES WITH SINGLE-ITEM AND MULTIPLE-ITEM QUERY OPERATORS - Queries against data sources (such as language-integrated queries to be applied against relational databases) may be prepared for processing by a query processing pipeline. This pipeline performs services including transforming the query into a form more easily applied by the data source, e.g., into SQL, by matching query terms with query operators configured to handle various query operations. Many query processing pipelines include single-item query operators that perform individual operations (e.g., an updating query operator that specifies an updating of individual records of a table.) An integrated query pipeline may be devised that includes both single-item query operators and multiple-item query operators that specify operations on sets of data items. An integrated query processing pipeline may analyze the query to determine whether a single-item or multiple-item operation is specified in order to select an appropriate query operator, which may improve the efficiency and performance of the data source querying. | 12-24-2009 |
20090319499 | QUERY PROCESSING WITH SPECIALIZED QUERY OPERATORS - Queries targeting various data sources are processed in a query processing pipeline that parses the query into a set of operations (e.g., an expression tree or a translated SQL query) using a set of query operators, each handling a particular type of operation. The query operators are often designed in an unspecialized manner, such that each query operator handles one query operation in an atomic, generic manner (e.g., sorting generic data items for an ORDER BY clause.) More efficient queries may be devised by including specialized queries that operate in common but special cases, such as a sorting of a particular data type (e.g., a floating-point number sort) or a sequence of two or more operations that are often performed together (e.g., a WHERE test of an attribute followed by a SELECT of the same attribute.) The use of specialized operators may result in the formulation of more efficient queries. | 12-24-2009 |
20090327220 | AUTOMATED CLIENT/SERVER OPERATION PARTITIONING - An operation (such as a relational query) may be processed on a processing engine (such as a relational database server) on behalf of a client. A conventional processing involves the delivery of the operation to the processing engine, which executes the entire operation to completion and returns a result data set. It may be more efficient to allocate part of the operation to be performed on the client, but a developer may be unable or unavailable to rewrite the operation in a distributed manner. Instead, the operation may be automatically partitioned into a pre-engine client portion, a processing engine portion, and a client portion, and the instructions of each portion may be automatically allocated respectively to the client, the server, and the client. The partitioning may be adjusted to conserve computing resources, such as bandwidth and storage, and the instructions may be reordered to improve the processing of the operation. | 12-31-2009 |
20100057772 | AUTOMATIC DETERMINATION OF AN ENTITY'S SEARCHABLE SOCIAL NETWORK USING ROLE-BASED INFERENCES - Techniques and systems for determining a first entity's social network are provided herein. Data is extracted from one or more data sources associated with the first entity. Once data is extracted, a role of a second entity may be inferred using inference algorithms, rules, keywords, and/or tags in the data extracted. The first entity's social network may be determined by linking the first entity to the second entity and the second entity's role(s) in relation to the first entity. It will be appreciated that the first entity may also search his/her/its network and/or other entities' social networks if the first entity has been granted access by the other entities, for example. Additionally, information about entities found during the first entity's search may be added to a data source associated with the first entity. | 03-04-2010 |
20100325607 | Generating Code Meeting Approved Patterns - A compiler deployed as a component of an integrated development environment (“IDE”) is adapted to transform source code into target code that is correct by construction by complying with approved patterns described by an external configuration file which is utilized to parameterize the generation of the target code by a code generator. The approved patterns can express various design requirements, guidelines, policies, and the like that are acceptable for the target code to include as well as those which are unacceptable. A rules generator that applies regular tree grammar is configured to encapsulate the approved patterns in the external configuration file using a formal description that is machine-readable by the code generator. A source code translator is alternatively utilized to transform non-compliant source code into compliant source code that adheres to the approved patterns. | 12-23-2010 |
20120089868 | FUZZ TESTING OF ASYNCHRONOUS PROGRAM CODE - A fuzz testing system is described herein that represents event sources, channels, processors, and consumers as first-class entities in an application. Abstracting event-related entities allows fuzzing through injecting, dropping, reordering, and delaying events from within the application. This translates into the ability to localize the areas under test and perform fuzzing in a systematic manner. In some embodiments, the fuzz testing system tests concurrent asynchronous and event-based code, and can generate event streams based on a given statistical distribution. Representing events, event sources, processors, and sinks as first-class objects provides easy access to the event handlers and facilitates implementing fuzzing by introducing event processors between the source and the sink. Thus, the fuzz testing system improves the testability of applications and APIs with asynchronous behavior and provides a uniform framework for introducing fuzz testing into such applications. | 04-12-2012 |
20120102458 | GENERATING DOCUMENTATION FROM TESTS - A documentation system is described herein that automatically generates documentation for software code from tests that verify the correct operation of the software code. Software development teams often write automated tests (software that tests the software being shipped), such as unit tests. When written correctly, these tests are a written contract of what the software is supposed to do. The documentation system can use static and dynamic analysis in combination with annotations in the test code to extract the contract from these tests and leverage the extracted information to automatically generate the documentation. The system can then visually display this information in a textual or graphical way. Thus, the documentation system generates documentation that more accurately reflects how software code is expected to operate, without introducing significant burdens into the software development cycle. | 04-26-2012 |
20120102503 | Green computing via event stream management - The subject disclosure relates to resource optimization in a computing system by leveraging the asynchronous nature of event-based programming. Events arriving on respective event streams are intercepted by mechanisms as described herein that regulate the flow of events from the event stream(s) to their corresponding programs according to a desired resource usage level associated with processing of the programs. Event flow control is performed as described herein via operations on events such as buffering, queuing, desampling, aggregating, reordering. As additionally described herein, a resource usage level for a given processing entity can be determined based on considerations such as program priorities, power profiles or other resource profiles, and resource cost analysis. Further, techniques for extending input regulation as described herein to the case of load distribution among multiple processing nodes are provided. | 04-26-2012 |
20120109937 | WEB SERVICES RUNTIME FOR DATASET TRANSFORMATION - Various aspects for providing a runtime for dataset transformation are disclosed. In one aspect, data consumption requests are received. The requested data is retrieved from a web service in an arbitrary form, and subsequently transformed into a standardized result from the arbitrary form. In another aspect, a user interface is displayed to a content provider, and an input identifying a transform function selected by the content provider is received via the user interface. A transform assembly is then generated based on the input, which facilitates retrieving data from a web service in an arbitrary form, and transforming the data into a standardized result by calling the selected transform function. In yet another aspect, third party code is associated with a transform assembly. An execution of the third party code is then managed such that at least one aspect of the transform assembly is operated according to the execution. | 05-03-2012 |
20130138730 | AUTOMATED CLIENT/SERVER OPERATION PARTITIONING - An operation (such as a relational query) may be processed on a processing engine (such as a relational database server) on behalf of a client. A conventional processing involves the delivery of the operation to the processing engine, which executes the entire operation to completion and returns a result data set. It may be more efficient to allocate part of the operation to be performed on the client, but a developer may be unable or unavailable to rewrite the operation in a distributed manner. Instead, the operation may be automatically partitioned into a pre-engine client portion, a processing engine portion, and a client portion, and the instructions of each portion may be automatically allocated respectively to the client, the server, and the client. The partitioning may be adjusted to conserve computing resources, such as bandwidth and storage, and the instructions may be reordered to improve the processing of the operation. | 05-30-2013 |
20130138731 | AUTOMATED CLIENT/SERVER OPERATION PARTITIONING - An operation (such as a relational query) may be processed on a processing engine (such as a relational database server) on behalf of a client. A conventional processing involves the delivery of the operation to the processing engine, which executes the entire operation to completion and returns a result data set. It may be more efficient to allocate part of the operation to be performed on the client, but a developer may be unable or unavailable to rewrite the operation in a distributed manner. Instead, the operation may be automatically partitioned into a pre-engine client portion, a processing engine portion, and a client portion, and the instructions of each portion may be automatically allocated respectively to the client, the server, and the client. The partitioning may be adjusted to conserve computing resources, such as bandwidth and storage, and the instructions may be reordered to improve the processing of the operation. | 05-30-2013 |
20130297261 | MOBILE SENSOR NETWORK - A sensor network may be created by collecting information from a plurality of mobile devices, such as cellular telephones. The mobile devices use sensors, such as microphones, cameras, accelerometers, biometric readers, etc. to detect the sensory information. Sensory output related to detected sensory information may be transmitted from a mobile device to a receiver that receives the sensory outputs. The received sensory outputs from a plurality of mobile devices may be aggregated to generate aggregated data, which may be transmitted to one or more receivers that use the aggregated data to perform a function and/or present the aggregated data to a user. Additionally, the aggregated data may be reviewed by a reviewer component that can create (revised) detection instructions regarding how one or more mobile devices are to detect sensory information and/or what sensory information to detect (e.g., to make resulting aggregated data more relevant). | 11-07-2013 |