| US 7,581,231 B2 | ||
| Computing system and method for allowing plurality of applications written in different programming languages to communicate and request resources or services via a common language runtime layer | ||
| Adam W. Smith, Redmond, Wash. (US); Anthony J. Moore, Seattle, Wash. (US); Anders Hejlsberg, Seattle, Wash. (US); Brian A. LaMacchia, Bellevue, Wash. (US); Blaine J. Dockter, Bellevue, Wash. (US); Brian M. Grunkemeyer, Issaquah, Wash. (US); Brian K. Pepin, Seattle, Wash. (US); Caleb L. Doise, Bellevue, Wash. (US); Christopher W. Brumme, Mercer Island, Wash. (US); Chad W. Royal, Redmond, Wash. (US); Christopher L. Anderson, Issaquah, Wash. (US); Corina E. Feuerstein, Redmond, Wash. (US); Craig T. Sinclair, Sammamish, Wash. (US); Daniel Dedu-Constantin, Redmond, Wash. (US); Daniel Takacs, Bellevue, Wash. (US); David S. Ebbo, Redmond, Wash. (US); David S. Mortenson, Redmond, Wash. (US); Erik B. Christensen, Seattle, Wash. (US); Erik B. Olson, Sammamish, Wash. (US); Fabio A. Yeon, Mill Creek, Wash. (US); Giovanni M. Della-Libera, Seattle, Wash. (US); Gopala Krishna R. Kakivaya, Sammamish, Wash. (US); Gregory D. Fee, Seattle, Wash. (US); Hany E. Ramadan, Kirkland, Wash. (US); Jayanth V. Rajan, Bellevue, Wash. (US); Jeffrey M. Cooperstein, Bellevue, Wash. (US); Jonathan C. Hawkins, Seattle, Wash. (US); James H. Hogg, Bellevue, Wash. (US); Joe D. Long, Woodinville, Wash. (US); John I. McConnell, Kirkland, Wash. (US); Jesus Ruiz-Scougall, Redmond, Wash. (US); James S. Miller, Bellevue, Wash. (US); Julie D. Bennett, Medina, Wash. (US); Jun Fang, Sammamish, Wash. (US); Krzysztof J. Cwalina, Redmond, Wash. (US); Keith W. Ballinger, North Bend, Wash. (US); Lance E. Olson, Sammamish, Wash. (US); Loren M. Kohnfelder, Bellevue, Wash. (US); Luca Bolognese, Redmond, Wash. (US); Manu Vasandani, Bellevue, Wash. (US); Mark T. Anders, Bellevue, Wash. (US); Mark P. Ashton, Kent, Wash. (US); Mark A. Boulter, Remond, Wash. (US); Mark W. Fussell, Sammamish, Wash. (US); Michael M. Magruder, Sammamish, Wash. (US); Manish S. Prabhu, Redmond, Wash. (US); Neetu Rajpal, Redmond, Wash. (US); Nikhil Kothari, Sammamish, Wash. (US); Nithyalakshmi Sampathkumar, Bellevue, Wash. (US); Nicholas M. Kramer, Redmond, Wash. (US); Omri Gazitt, Redmond, Wash. (US); Radu Rares Palanca, Redmond, Wash. (US); Raja Krishnaswamy, Bellevue, Wash. (US); Robert M. Howard, Snoqualmie, Wash. (US); Ramasamy Krishnaswamy, Redmond, Wash. (US); Shawn P. Burke, Kirkland, Wash. (US); Scott D. Guthrie, Bellevue, Wash. (US); Sean E. Trowbridge, Sammamish, Wash. (US); Seth M. Demsey, Kirkland, Wash. (US); Shajan Dasan, Sammamish, Wash. (US); Subhag P. Oak, Redmond, Wash. (US); Sreeram Nivarthi, Sammamish, Wash. (US); Stefan H. Pharies, Seattle, Wash. (US); Suzanne M. Cook, Redmond, Wash. (US); Susan M. Warren, Carnation, Wash. (US); Tarun Anand, New Dehli (India); Travis J. Muhlestein, Redmond, Wash. (US); William A. Adams, Bellevue, Wash. (US); Yan Leshinsky, Bellevue, Wash. (US); Yann E. Christensen, Seattle, Wash. (US); Yung-shin Lin, Sammamish, Wash. (US); Stephen J. Millet, Edmonds, Wash. (US); Joseph Roxe, Kirkland, Wash. (US); Alan Boshier, Redmond, Wash. (US); Henry L. Sanders, Kirkland, Wash. (US); and David Bau, Gladwyne, Pa. (US) | ||
| Assigned to Microsoft Corporation, Redmond, Wash. (US) | ||
| Filed on Feb. 28, 2002, as Appl. No. 10/87,027. | ||
| Application 10/087027 is a continuation of application No. 09/902936, filed on Jul. 10, 2001, abandoned. | ||
| Prior Publication US 2003/0028685 A1, Feb. 06, 2003 | ||
| Int. Cl. G06F 13/00 (2006.01); G06F 15/16 (2006.01); G06F 17/00 (2006.01); G06F 3/00 (2006.01) | ||
| U.S. Cl. 719—328 [709/203; 715/234; 715/740] | 12 Claims |

| 1. A software architecture implemented at least in part by a computing device for a distributed computing system comprising:
a plurality of applications configured to handle requests submitted by remote devices over a network, the plurality of applications
being written in different programming languages;
an application program interface to present functions used by the plurality of applications to access network and computing
resources of the distributed computing system, wherein the application program interface comprises:
a first group of services related to creating Web applications, the first group of services comprising:
constructing Web services;
temporary caching resources;
performing an initial configuration;
creating controls and Web pages;
enabling security in Web server applications; and
accessing session state values;
a second group of services related to constructing client applications, the second group of services comprising:
creating windowing graphical user interface environments; and
enabling graphical functionality;
a third group of services related to data and handling XML documents, the third group of services comprising:
enabling management of data from multiple data sources; and
functions that enable XML processing; and
a fourth group of services related to base class libraries, the fourth group of services comprising:
defining various collections of objects;
accessing configuration settings and handling errors in configuration files;
debugging and tracing code execution;
customizing data according to cultural related information;
inputting and outputting of data;
enabling a programming interface to network protocols;
viewing loaded types, methods, and fields;
creating, storing and managing various culture-specific resources;
enabling system security and permissions;
installing and running services;
enabling character encoding;
enabling multi-threaded programming; and
facilitating runtime operations; and
a common language runtime layer that translates the plurality of applications written in different programming languages into
an intermediate language, the intermediate language being:
executed natively by the common language runtime layer; and
configured to access the network and computing resources or the first, second, third, and fourth group of services requested
by the remote devices, whereby a seamless integration between multi-language application development, with cross language
inheritance is allowed and a robust and secure execution environment for multiple programming languages is provided.
|