Microsoft since Aug 2008
Senior Software Development Engineer
Portland State University 2003 - 2009
Graduate Student
Education:
Portland State University 2003 - 2008
Ph.D., Computer Science
Skills:
Computer Science Distributed Systems Software Engineering Algorithms Machine Learning C# .Net Xml Sql Software Development Software Design Visual Studio Python
James F. Terwilliger - Redmond WA, US Philip A. Bernstein - Bellevue WA, US Aditya Unnithan - Seattle WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 17/30
US Classification:
707803, 707809
Abstract:
Aspects of the subject matter described herein relate to automating evolution of schemas and mappings. In aspects, mappings between a conceptual model and a store model are updated automatically in response to a change that occurs to the conceptual model. For example, when a change occurs to the conceptual model, a local scope of the change is determined. The local scope indicates mappings that are most similar to the type(s) affected by the change. Based on the local scope, a pattern of mappings between the conceptual model and the store model is determined. Using this pattern and the nature of the change, the mappings are updated according to the pattern. In addition, the store model and data thereon may be updated in a manner to preserve existing data that is not to be deleted in response to the change.
Mapping And Query Translation Between Xml, Objects, And Relations
Sergey Melnik - Kirkland WA, US Philip A. Bernstein - Bellevue WA, US James F. Terwilliger - Portland OR, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 17/30
US Classification:
707 4, 707E17014, 707E17045
Abstract:
Described is programmatic access to persistent XML and relational data from applications based upon explicit mappings between object classes, XML schema types, and relations. The mappings are used in data access, that is, they drive query and update processing. A query may be processed into a query for accessing the XML data and another query for second type for accessing the relational data. Mappings support strongly-typed classes and loosely-typed classes, and may be conditional upon other data, may decouple query and update translation performed at runtime from schema translation used at compile time, and/or may be compiled into transformations that produce objects from XML data and transformations that produce XML data from objects. Mappings may be generated automatically or provided by the developer.
Mapping Documents To A Relational Database Table With A Document Position Column
Liang Chen - San Diego CA, US Nikita Shamgunov - Bellevue WA, US Philip A. Bernstein - Bellevue WA, US Michael Rys - Sammamish WA, US James F. Terwilliger - Redmond WA, US Peter Alan Carlin - Taipei, TW Dragan Tomic - Belgrade, RS
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 17/30
US Classification:
707803, 707812, 707E17054, 707E17008
Abstract:
Architecture that maps document data (e.g., XML-extended markup language) into columns of one table, thereby avoiding schema normalization problems through special data storage. Moreover, an algorithm is described that can translate a query (e.g., in XPath (XML path language), a query language for navigating through document elements and attributes of an XML document) into a relational algebra query of the document column representation. Based on the characteristics of the new mapping, query rewriting rules are provided that optimize the relational algebra query by minimizing the number of joins. The mapping of XML documents to the table is based on a summary structure and a hierarchical labeling scheme (e.g., ordpath) to enable a high-fidelity representation. Annotations are employed on the summary structure nodes to assist in mapping XML elements and attributes to the table.
Full-Fidelity Representation Of Xml-Represented Objects
Philip A. Bernstein - Bellevue WA, US Sergey Melnik - Kirkland WA, US James F. Terwilliger - Redmond WA, US
Assignee:
Microsoft Corporation - Redmond WA
International Classification:
G06F 17/00 G06F 17/30
US Classification:
707769, 715234, 707E17014, 707E17005
Abstract:
A data structure may exist in various representations, such as an object in an object-oriented system or a set of elements included in an extensible markup language (XML) document structured according to an XML type defined in an XML schema. While many aspects of these representations may correspond, some aspects of an XML document may not be specified by the XML schema (such as developer comments, whitespace, and preprocessor directives), and may be lost while translating an XML representation of the data structure to an object. These non-schematized aspects may be included in the object as a delta, specifying the location of an aspect with relation to an element defined by the XML schema. Preserving non-schematized aspects may promote the full representation of the data structure as an object, and may facilitate a full-fidelity regeneration of the XML document from which the object was generated.
Dynamic Distributed Query Execution Over Heterogeneous Sources
Gregory Hughes - Redmond WA, US Michael Coulson - Clyde Hill WA, US James Terwilliger - Redmond WA, US Clemens Szyperski - Redmond WA, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 17/30
US Classification:
707718, 707705, 707E17014
Abstract:
An execution strategy is generated for a program that interacts with data from multiple heterogeneous data sources during program execution as a function of data source capabilities and costs. Portions of the program can be executed locally and/or remotely with respect to the heterogeneous data sources and results combined.
Incremental Compilation Of Object-To-Relational Mappings
Jorge A. Pérez - Santiago, CL James F. Terwilliger - Redmond WA, US Philip A. Bernstein - Bellevue WA, US
Assignee:
MICROSOFT CORPORATION - Redmond WA
International Classification:
G06F 17/30
US Classification:
707687, 707756, 707E17045
Abstract:
Aspects of the subject matter described herein relate to incrementally modifying schemas and mappings. In aspects, an indication of a change to a client schema is received and a compilation directive is received. The compilation directive may indicate how one or more entities or associations in the client schema are to be mapped to the store schema. In response to receiving the indication of the change and the compilation directive, mapping data and storage schema may be incrementally modified with incremental revalidation and incremental updating of query and update views.
- Redmond WA, US Jonathan D. GOLDSTEIN - Woodinville WA, US Michael BARNETT - Seattle WA, US James Felger TERWILLIGER - Redmond WA, US
International Classification:
G06F 17/30
Abstract:
An intermediate representation of a workflow of one or more modules may be generated to decouple language implementations of the one or more modules. In response to receiving a workflow of one or more modules, the workflow may be analyzed to determine an optimal implementation language for each of the one or more modules to thereby reduce effects of data marshalling. An intermediate representation of the workflow that is configured to decouple any implementation languages associated with the one or more modules may be generated. To allow for decoupling, the intermediate representation may be written in a declarative language. The generated intermediate representation may then be compiled to generate an executable program that corresponds to the workflow and is implemented in the determined optimal language for each of the one or more modules.
Stream Data Processing On Multiple Application Timelines
- Redmond WA, US Jonathan GOLDSTEIN - Woodinville WA, US Michael BARNETT - Seattle WA, US James Felger TERWILLIGER - Redmond WA, US
International Classification:
G06F 17/30 G06F 7/08 H04L 12/875
Abstract:
Accommodating a particular kind of out-of-order data; namely, when data arrives out-of-order because the data is generated in systems that may have different application timelines. As data arrives, it arrives with a particular partition key. For instance, the partition key might identify the source of the data. The data from each partition key is kept in-order with respect to all other data from that same partition key. That said, data from one key is permitted to have a different timeline as compared to data from any other key. Thus, the data may not be in-order when viewed globally across keys. Rather, data is tolerated to be out-of-order globally so long as the lag in the arrived data is within some tolerated lag. If the data arrives having a time that exceeds the maximum tolerated lag, then the system applies some policy to determine what to do with the delayed data.
Name / Title
Company / Classification
Phones & Addresses
James Terwilliger COO
Aquasniper National Commercial Banks
4184 Se 30Th Ave. #131, Portland, OR 97202
Googleplus
James Terwilliger
Work:
Hartwick College - Telecommunications/Networking Technical Associate (1997)