Misplaced Pages

Object Data Management Group

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

The Object Data Management Group ( ODMG ) was conceived in the summer of 1991 at a breakfast with object database vendors that was organized by Rick Cattell of Sun Microsystems . In 1998, the ODMG changed its name from the Object Database Management Group to reflect the expansion of its efforts to include specifications for both object database and object–relational mapping products.

#474525

28-478: The primary goal of the ODMG was to put forward a set of specifications that allowed a developer to write portable applications for object database and object–relational mapping products. In order to do that, the data schema, programming language bindings , and data manipulation and query languages needed to be portable. Between 1993 and 2001, the ODMG published five revisions to its specification. The last revision

56-492: A common web browser. Such web applications must, for security reasons, have limited control over the host computer, especially regarding reading and writing files. Non-web programs, installed upon a computer in the normal manner, can have more control, and yet achieve system portability by linking to portable libraries providing the same interface on different systems. Software can be compiled and linked from source code for different operating systems and processors if written in

84-509: A programming language supporting compilation for the platforms. This is usually a task for the program developers; typical users have neither access to the source code nor the required skills. In open-source environments such as Linux the source code is available to all. In earlier days source code was often distributed in a standardised format, and could be built into executable code with a standard Make tool for any particular system by moderately knowledgeable users if no errors occurred during

112-469: A response to the request, in contrast to static web pages . Web applications are commonly distributed via a web server . There are several different tier systems that web applications use to communicate between the web browsers, the client interface, and server data. Each system has their own uses as they function in different ways. However, there are many security risks that developers must be aware of during development; proper measures to protect user data

140-421: A web browser tab but later can run completely offline and can be launched without entering the app URL in the browser. Traditional PC applications are typically single-tiered, residing solely on the client machine. In contrast, web applications inherently facilitate a multi-tiered architecture. Though many variations are possible, the most common structure is the three-tiered application. In its most common form,

168-439: Is broken down into a more fine-grained model. Another benefit would be to add an integration tier, which separates the data tier and provides an easy-to-use interface to access the data. For example, the client data would be accessed by calling a "list_clients()" function instead of making an SQL query directly against the client table on the database. This allows the underlying database to be replaced without making any change to

196-427: Is specifically designed to run on different computers with compatible operating systems and processors, without any machine-dependent installation. Porting is no more than transferring specified directories and their contents. Software installed on portable mass storage devices such as USB sticks can be used on any compatible computer on simply plugging the storage device in, and stores all configuration information on

224-466: Is such that detailed software operation is different; an application designed to display suitably on a large screen cannot simply be ported to a pocket-sized smartphone with a tiny screen even if the functionality is similar. Web applications are required to be processor independent, so portability can be achieved by using web programming techniques, writing in JavaScript . Such a program can run in

252-545: Is vital. Web applications are often constructed with the use of a web application framework . Single-page and progressive are two approaches for a website to seem more like a native app. The concept of a "web application" was first introduced in the Java language in the Servlet Specification version 2.2, which was released in 1999. At that time, both JavaScript and XML had already been developed, but

280-665: The Java Data Objects specification. The ODMG member companies then decided to concentrate their efforts on the Java Data Objects specification. As a result, the ODMG disbanded in 2001. In 2004, the Object Management Group (OMG) was granted the right to revise the ODMG 3.0 specification as an OMG specification by the copyright holder, Morgan Kaufmann Publishers. In February 2006, the OMG announced

308-577: The XMLHttpRequest object had only been recently introduced on Internet Explorer 5 as an ActiveX object. Beginning around the early 2000s, applications such as " Myspace (2003), Gmail (2004), Digg (2004), [and] Google Maps (2005)," started to make their client sides more and more interactive. A web page script is able to contact the server for storing/retrieving data without downloading an entire web page. The practice became known as Ajax in 2005. In earlier computing models like client-server,

SECTION 10

#1732776835475

336-461: The support cost and decreasing productivity . Additionally, both the client and server components of the application were bound tightly to a particular computer architecture and operating system , which made porting them to other systems prohibitively expensive for all but the largest applications. Later, in 1995, Netscape introduced the client-side scripting language called JavaScript , which allowed programmers to add dynamic elements to

364-475: The build. Some Linux distributions distribute software to users in source form. In these cases there is usually no need for detailed adaptation of the software for the system; it is distributed in a way which modifies the compilation process to match the system . Even with seemingly portable languages like C and C++ , the effort to port source code can vary considerably. The authors of UNIX/32V (1979) reported that "[t]he (Bourne) shell [...] required by far

392-416: The development process. This includes processes for authentication, authorization, asset handling, input, and logging and auditing. Building security into the applications from the beginning is sometimes more effective and less disruptive in the long run. Writing web applications is simplified with the use of web application frameworks . These frameworks facilitate rapid application development by allowing

420-440: The file or files may simply be copied from one machine to the other. However, in many cases, the software is installed on a computer in a way which depends upon its detailed hardware, software, and setup, with device drivers for particular devices, using installed operating system and supporting software components, and using different drives or directories . In some cases, software, usually described as " portable software ",

448-520: The formation of the Object Database Technology Working Group (ODBT WG) and plans to work on the 4th generation of an object database standard . Software portability Software portability is a design objective for source code to be easily made to run on different platforms . An aid to portability is the generalized abstraction between the application logic and system interfaces . When software with

476-487: The largest conversion effort of any supposedly portable program, for the simple reason that it is not portable." Sometimes the effort consists of recompiling the source code, but sometimes it is necessary to rewrite major parts of the software. Many language specifications describe implementation defined behaviour (e.g. right shifting a signed integer in C can do a logical or an arithmetic shift). Operating system functions or third party libraries might not be available on

504-425: The other tiers. There are some who view a web application as a two-tier architecture. This can be a "smart" client that performs all the work and queries a "dumb" server, or a "dumb" client that relies on a "smart" server. The client would handle the presentation tier, the server would have the database (storage tier), and the business logic (application tier) would be on one of them or on both. While this increases

532-450: The porting effort. In practice the claim of languages, like C and C++ , to have the WOCA ( write once, compile anywhere ) is arguable. Web applications A web application (or web app ) is application software that is created with web technologies and runs via a web browser . Web applications emerged during the late 1990s and allowed for the server to dynamically build

560-463: The processing load for the application was shared between code on the server and code installed on each client locally. In other words, an application had its own pre-compiled client program which served as its user interface and had to be separately installed on each user's personal computer . An upgrade to the server-side code of the application would typically also require an upgrade to the client-side code installed on each user workstation, adding to

588-591: The removable device. Hardware- and software-specific information is often stored in configuration files in specified locations such as the registry on Windows ). Software which is not portable in this sense must be modified much more to support the environment on the destination machine. As of 2011 the majority of desktop and laptop computers used microprocessors compatible with the 32- and 64-bit x86 instruction sets. Smaller portable devices use processors with different and incompatible instruction sets, such as ARM . The difference between larger and smaller devices

SECTION 20

#1732776835475

616-401: The same functionality is produced for several computing platforms , portability is the key issue for development cost reduction. Software portability may involve: When operating systems of the same family are installed on two computers with processors with similar instruction sets it is often possible to transfer the files implementing program files between them. In the simplest case,

644-469: The scalability of the applications and separates the display and the database, it still does not allow for true specialization of layers, so most applications will outgrow this model. Security breaches on these kinds of applications are a major concern because it can involve both enterprise information and private customer data. Protecting these assets is an important part of any web application, and there are some key operational areas that must be included in

672-401: The target system. Some functions can be available on a target system, but exhibit slightly different behavior such as utime() fails under Windows with EACCES, when it is called for a directory). The program code can contain unportable things, like the paths of include files, drive letters, or the backslash. Implementation defined things like byte order and the size of an int can also raise

700-439: The three tiers are called presentation , application and storage . The first tier, presentation, refers to a web browser itself. The second tier refers to any engine using dynamic web content technology (such as ASP , CGI , ColdFusion , Dart , JSP/Java , Node.js , PHP , Python or Ruby on Rails ). The third tier refers to a database that stores data and determines the structure of a user interface. Essentially, when using

728-410: The three-tiered system, the web browser sends requests to the engine, which then services them by making queries and updates against the database and generates a user interface. The 3-tier solution may fall short when dealing with more complex applications, and may need to be replaced with the n-tiered approach; the greatest benefit of which is how business logic (which resides on the application tier)

756-502: The user interface that ran on the client side. Essentially, instead of sending data to the server in order to generate an entire web page, the embedded scripts of the downloaded page can perform various tasks such as input validation or showing/hiding parts of the page. " Progressive web apps ", the term coined by designer Frances Berriman and Google Chrome engineer Alex Russell in 2015, refers to apps taking advantage of new features supported by modern browsers, which initially run inside

784-560: Was ODMG version 3.0, after which the group disbanded. ODMG 3.0 was published in book form in 2000. By 2001, most of the major object database and object-relational mapping vendors claimed conformance to the ODMG Java Language Binding. Compliance to the other components of the specification was mixed. In 2001, the ODMG Java Language Binding was submitted to the Java Community Process as a basis for

#474525