IP Library Granted Patent US 7,457,815
Granted Patent B2
US 7,457,815 · App. 10/401,121 · Granted Nov 25, 2008

Method and apparatus for automatically providing network services

Assignee: Apple Inc.
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,457,815
App. No.
10/401,121
Granted
Nov 25, 2008
Kind
B2
Abstract

An embodiment of the invention is directed to a method and apparatus for automatically providing network services in a way that improves upon the prior art. Systems implementing aspects of the invention can, for instance, provide developers with a mechanism for creating Web Services without having to write low-level SOAP, XML, or WSDL code. The system utilizes a rule-based approach to provide a mechanism for dynamically reconfiguring the system with requiring redeployment of the entire system.

Claims (61)

1. A network services assistant computer program in a storage medium comprising computer program code executed by a processor to:

obtain a database schema of a database;

analyze said database schema to determine a hierarchical structure within a plurality of database fields in said database;

integrate a user input and the hierarchical structural information from the analysis of said database schema;

generate programmatically based on the integrated user input and the hierarchical structural information a set of operation rules for utilizing said database fields, the set of operation rules for utilizing said database fields comprising one or more rules for examining one or more of database specific, table specific, and field specific privileges;

generate a set of operation rules for translating an output of a query to said database into one of a plurality of data communication languages; and

store said set of operation rules for utilizing said database fields and said set of operation rules for translating an output of a query to said database into one of a plurality of data communication languages in a manner that makes the respective sets of operation rules available to a rule engine configured to implement them.

2. The network services assistant of claim 1 wherein said computer program code configured to analyze said database schema further comprises computer program code configured to provide an object description for building entities to store data.

3. The network services assistant of claim 1 wherein said computer program code configured to analyze said database schema further comprises computer program code configured to provide an object description for accessing data in said database.

4. The network services assistant of claim 1 wherein said computer program code configured to analyze said database schema further comprises computer program code configured to generate a hierarchical structure involving multiple database tables.

5. The network services assistant of claim 1 wherein said computer program code is further configured to generate a set of operation rules for querying said database fields.

6. The network services assistant of claim 5 wherein said computer program code configured to generate said set of operation rules for querying said database fields further comprises computer program code configured to provide a data type for each of said database fields.

7. The network services assistant of claim 1 wherein said computer program code is further configured to generate a set of operation rules for modifying said database fields.

8. The network services assistant of claim 7 wherein said computer program code configured to generate said set of operation rules for modifying said database fields comprises computer program code configured to provide controls for handling database transactions.

9. The network services assistant of claim 1 wherein said computer program code is further configured to generate a set of operation rules for accessing said database fields.

10. The network services assistant of claim 9 wherein said computer program code configured to generate said set of operation rules for accessing said database fields further comprises computer program code configured to handle user privileges at run time.

11. The network services assistant of claim 1 wherein said computer program code configured to generate a set of operation rules for translating said output further comprises computer program code configured to generate data compatible with SOAP.

12. The network services assistant of claim 1 wherein said computer program code configured to generate a set of operation rules for translating said output further comprises computer program code configured to generate data compatible with Web Services Description Language.

13. A method for providing web services comprising:

obtaining a database schema of a database;

analyzing said database schema to determine a hierarchical structure within a plurality of database fields in said database;

integrating a user input and the hierarchical structural information from the analysis of said database schema;

generating programmatically based on the integrated user input and the hierarchical structural information a plurality of operation rules for utilizing said database fields, the plurality of operation rules for utilizing said database fields comprising one or more rules for examining one or more of database specific, table specific, and field specific privileges;

making said plurality of operation rules available to a rule engine configured to implement said plurality of operation rules;

generating a plurality of descriptors for a plurality of web services based on said schema; and

providing one of said plurality of web services upon receiving a request containing at least one of said plurality of descriptors, by executing said plurality of operation rules, building a request for accessing said database, accessing said database and returning data in a data form based on a web services protocol.

14. The method of claim 13 wherein said database further comprises a relational database having a plurality of tables and a plurality of relationships linking said plurality of tables.

15. The method of claim 13 wherein said database further comprises a data source using directory services.

16. The method of claim 13 wherein said generating a plurality of descriptors further comprises generating a publishable name to describe each one of said plurality of web services.

17. The method of claim 13 wherein said generating a plurality of descriptors further comprises automatically generating a set of operations for accessing said plurality of web services.

18. The method of claim 17 wherein said automatically generating a set of operations further comprises automatically generating a set of functions for accessing said database.

19. The method of claim 18 wherein said set of functions further comprises at least one function for adding data to said database.

20. The method of claim 18 wherein said set of functions further comprises at least one function for deleting data from said database.

21. The method of claim 13 wherein said generating said plurality of operation rules further comprises generating a set of conditional statements each of which are combined with an execution statement.

22. The method of claim 13 wherein said plurality of operation rules comprises a hierarchical structure defining the precedence of each rule within said plurality of operation rules.

23. A method for automatically providing web services comprising:

obtaining a database schema of a database;

analyzing said database schema to determine a hierarchical structure within a plurality of database fields in said database;

integrating a user input and the hierarchical structural information from the analysis of said database schema;

generating programmatically based on the integrated user input and the hierarchical structural information a set of operation rules for utilizing said database fields, the set of operation rules for utilizing said database fields comprising one or more rules for examining one or more of database specific, table specific, and field specific privileges;

generating a set of operation rules for translating an output of a query to said database into one of a plurality of data communication languages;

storing said set of operation rules for utilizing said database fields and said set of operation rules for translating an output of a query to said database into one of a plurality of data communication languages in a manner that makes the respective sets of operation rules available to a rule engine configured to implement them;

receiving from a client a request comprising a web service and at least one argument datum;

generating a request object;

checking said request object against the stored sets of operation rules using the rule engine; and

performing the following in the event it is determined based on said checking that said request object is permitted:

generating a query to the database;

obtaining data from said database by submitting said query;

building a response data entity;

generating a response object;

generating response data while utilizing said rule engine; and

transmitting said response data to said client.

24. The method of claim 23 wherein said receiving said request further comprises receiving a function name and zero or more function arguments.

25. The method of claim 23 wherein said receiving said request further comprises receiving an alias associated with said web service.

26. The method of claim 23 wherein said receiving said request further comprises determining whether said request requires dynamic handling.

27. The method of claim 23 wherein said receiving said request further comprises examining a header contained in said request, said header bearing information for requesting access to said web service.

28. The method of claim 23 wherein said request object further comprises a data structure for storing request information contained in said request.

29. The method of claim 28 wherein said request object further comprises at least one function for accessing and manipulating said request information.

30. The method of claim 23 wherein said performing said checking further comprises verifying a name of said web service.

31. The method of claim 23 wherein said performing said checking further comprises verifying a type for said at least one argument datum.

32. The method of claim 23 wherein said building said response data entity further comprises generating said data entity using Web Services Description Language.

Assignments (3)
CHANGE OF NAME Recorded May 3, 2007
From: APPLE COMPUTER, INC.
To: APPLE INC.
Reel/Frame 019246/0293 →
CORRECTION OF NOTICE - REEL/FRAME 014302/0150 ASSIGNOR NAME IS KARL HSU Recorded May 12, 2005
From: HSU, KARL; JOUAUX, FRANCOIS; KIM, ERNEST; LUE-SANG, RON; TURNER, MELISSA; WENDKER, ANDREAS
To: APPLE COMPUTER, INC.
Reel/Frame 016859/0506 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2003
From: JOUAUX, FRANCOIS; SHU, KARL; KIM, ERNEST; LUE-SANG, RON; TURNER, MELISSA; WENDKER, ANDREAS
To: APPLE COMPUTER, INC.
Reel/Frame 014302/0150 →
Continuity (1)
Related Publication 20040193635A1 · Sep 30, 2004