Component-based software engineering ( CBSE ), also called component-based development ( CBD ), is a style of software engineering that aims to construct a software system from components that are loosely- coupled and reusable . This emphasizes the separation of concerns among components.
36-469: OpenDoc is a defunct multi-platform software componentry framework standard created by Apple in the 1990s for compound documents , intended as an alternative to Microsoft 's proprietary Object Linking and Embedding (OLE). It is one of Apple's earliest experiments with open standards and collaborative development methods with other companies. OpenDoc development was transferred to the non-profit Component Integration Laboratories, Inc. (CI Labs), owned by
72-462: A code signing technology called Authenticode . Developers had to register with Verisign (US$ 20 per year for individuals, $ 400 for corporations) and sign a contract, promising not to develop malware . Identified code would then run inside the web browser with full permissions, meaning that any bug in the code was a potential security issue; this contrasts with the sandboxing already used in Java at
108-559: A component architecture, and that Microsoft would never license the source code for OLE or COM, so Novell needs to support those also via OpenDoc. More than 20 more companies announced their products' support for OpenDoc, citing its technological superiority to Microsoft's OLE and COM, and its wide cross-platform support. In 1996, OpenDoc was adopted by the Object Management Group , in part due to SOM's use of Common Object Request Broker Architecture (CORBA), maintained by
144-510: A disciplined culture and process is required to achieve the benefits of CBSE. Third-party components are often utilized in large systems. The system can be designed visually with the Unified Modeling Language (UML). Each component is shown as a rectangle, and an interface is shown as a lollipop to indicate a provided interface and as a socket to indicate consumption of an interface. Component-based usability testing
180-563: A growing team of major corporate backers and effectively starting an industry consortium. In 1992, the AIM alliance was launched by Apple, IBM , and Motorola , with OpenDoc as a foundation. With the return of Steve Jobs to Apple, OpenDoc was discontinued in March 1997. The core idea of OpenDoc is to create small, reusable components which are responsible for a specific task, such as text editing, bitmap editing, or browsing an FTP server. OpenDoc
216-443: A known document format that all the components could use, and so soon the standardized document format was pulled into the component software effort. The format quickly changed from a simple one using tags to a very complex object oriented persistence layer called Bento. Initially the effort was codenamed "Exemplar", then "Jedi", "Amber", and eventually "OpenDoc". In March 1992, the AIM alliance between Apple, IBM, and Motorola,
252-569: A major part of Apple's future efforts, in and out of OpenDoc. In March 1995, many OpenDoc announcements came. CI Labs ownership included Apple, IBM, Novell, and SunSoft. IBM pre-announced at Object World Boston the future release of the OpenDoc OS/2 Developer Toolkit version 2, containing the complete API, and then the final release of OpenDoc 1.0 for OS/2 3.0. Taligent 's CommonPoint application framework has compound document features based on OpenDoc. Novell announced at
288-584: A modern OO-based programming system. The development team realized in mid-1992 that an industry coalition was needed to promote the system, and created the Component Integration Laboratories (CI Labs) with IBM and WordPerfect . IBM introduced to OpenDoc, its already mature System Object Model (SOM) and Distributed SOM (DSOM) shared library systems from AIX and OS/2. DSOM allows live networked linking of data between different platforms, which OLE and COM did not have. SOM became
324-430: A plug-in for Netscape Navigator to support ActiveX. Documentation for ActiveX core technology resides at The Open Group and may be read for free. Despite Microsoft's previous efforts to make ActiveX cross-platform, most ActiveX controls would not and will not work on all platforms, so using ActiveX controls to implement essential functionality of a web page restricts its usefulness. The government of South Korea , in
360-687: A proposed OLE II project. Apple had been experimenting internally with software components for some time, based on the initial work done on its Publish and Subscribe linking model and the AppleScript scripting language , which in turn was based on the HyperCard programming environment. Apple reviewed the Microsoft prototype and document, and returned a list of problems with the design. Microsoft and Apple were very competitive, were unable to agree on common goals, and did not work together. At about
396-674: A software-agnostic gravitating move, started in circa 2015 to remove the technology from their public websites in order to make their web site accessible to more platforms. While Microsoft made significant efforts to push the cross-platform aspect of ActiveX by way of publishing the API, ultimately the cross-platform effort failed due to the ActiveX controls being written in C or C++ and being compiled in Intel x86 Assembly language , making them executable only on Windows machines where they can call
SECTION 10
#1732773033419432-487: Is a framework in which these components can run together, and a compound document format for storing the data created by each component. These documents can then be opened on different networked machines of different operating systems, on which the OpenDoc frameworks can substitute suitable components for each part, even if they are from different vendors. In this way users can "build up" their documents from parts. Since there
468-418: Is a semi-successful OpenDoc word processor from Digital Harbor LLC. The Numbers & Charts package is a spreadsheet and 3D real-time charting solution from Adrenaline Software. Lexi from Soft-Linc, Inc. is a linguistic package containing a spell checker, thesaurus, and a simple translation tool which WAV and other components use. The Nisus Writer software by Nisus incorporated OpenDoc, but its implementation
504-593: Is for components that interact with the end user . ActiveX ActiveX is a deprecated software framework created by Microsoft that adapts its earlier Component Object Model (COM) and Object Linking and Embedding (OLE) technologies for content downloaded from a network, particularly from the World Wide Web . Microsoft introduced ActiveX in 1996. In principle, ActiveX is not dependent on Microsoft Windows operating systems, but in practice, most ActiveX controls only run on Windows. Most also require
540-467: Is no main application and the only visible interface is the document itself, the system is known as document-centered . OpenDoc was conceived to allow, for example, smaller, third-party developers to enter the competitive office suite software market, and build small, specialized applications instead of having to provide a complete suite. It was envisioned to facilitate a new future of online app stores . Microsoft approached Apple asking for input on
576-676: Is supported in many rapid application development technologies, such as Active Template Library , Delphi , JavaBeans, Microsoft Foundation Class Library , Qt , Visual Basic , Windows Forms and wxWidgets , to enable application developers to embed ActiveX controls into their products. Many Microsoft Windows applications—including many of those from Microsoft itself, such as Internet Explorer , Microsoft Office , Microsoft Visual Studio , and Windows Media Player —use ActiveX controls to build their feature-set and also encapsulate their own functionality as ActiveX controls which can then be embedded into other applications. Internet Explorer also allows
612-519: The Brainshare conference, a plan to break up most or all of its products into OpenDoc components, beginning with WordPerfect applications and then its NetWare operating system. NetWare was intended to become a managed Compound Document Service for networks, to manage object links and compound document searching. Novell announced a plan for OpenDoc to become the basis for building UnixWare applications. It acknowledged that its operating systems lack
648-582: The Club OpenDoc website for a 30 day free trial: the Person Pak is "components aimed at organizing names, addresses, and other personal information", for use with personal information management (PIM) applications, at $ 229 ; and the Table Pak "to store rows and columns in a database file" at $ 269 . IBM then anticipated the release of 50 more components by the end of 1996. The WAV word processor
684-571: The OMG. CI Labs never publicly released the source code, but licensed it to developers for feedback, testing, and debugging. In September 1994, the OpenDoc subsystem was launched on System 7.5 , and later on OS/2 Warp 4. After three years of development on OpenDoc itself, the first OpenDoc-based product release was Apple's CyberDog web browser in May 1996. The second was on August 1, 1996, of IBM's two packages of OpenDoc components for OS/2, available on
720-772: The browser encountered a page specifying an ActiveX control via an OBJECT tag (the OBJECT tag was added to the HTML 3.2 specification by Charlie Kindel , the Microsoft representative to the W3C at the time ) it would automatically download and install the control with little or no user intervention. This made the web "richer" but provoked objections (since such controls, in practice, ran only on Windows, and separate controls were required for each supported platform: one for Windows 3.1/Windows NT 3.51, one for Windows NT/95, and one for Macintosh M68K/PowerPC.) and security risks (especially given
756-502: The client to be running on an x86 -based computer because ActiveX controls contain compiled code. ActiveX is still supported in the "Internet Explorer mode" of Microsoft Edge (which has a different, incompatible extension system, as it is based on Google 's Chromium project). ActiveX was one of the major technologies used in component-based software engineering . Compared with JavaBeans , ActiveX supports more programming languages , but JavaBeans supports more platforms. ActiveX
SECTION 20
#1732773033419792-404: The code would be used for OpenDoc programming, but nothing was ever heard of this again, and Bedrock disappeared. As a result of Taligent and Bedrock both being Apple's officially promised future platforms, little effort had been expended on updating MacApp. Because Bedrock was discontinued in 1993 and Taligent was discontinued in 1996 without any MacOS release, this left Apple with only OpenDoc as
828-650: The discontinuation of OpenDoc, the simulations were rewritten as Java applets and published from the Center as The Constructing Physics Understanding (CPU) Project by Dr. Fred Goldberg. Components of the E-Slate educational microworlds platform were originally implemented as OpenDoc parts in C++ on both MacOS and Windows, reimplemented later (after the discontinuation of OpenDoc) as Java applets and eventually as JavaBeans . OpenDoc had several hundred developers signed up. Apple
864-692: The embedding of ActiveX controls in web pages . Faced with the complexity of OLE 2.0 and with poor support for COM in MFC , Microsoft simplified the specification and rebranded the technology as ActiveX in 1996. Even after simplification, users still required controls to implement about six core interfaces. In response to this complexity, Microsoft produced wizards , ATL base classes, macros and C++ language extensions to make it simpler to write controls. Starting with Internet Explorer 3.0 (1996), Microsoft added support to host ActiveX controls within HTML content. If
900-548: The lack of user intervention). Microsoft subsequently introduced security measures to make browsing including ActiveX safer. For example: ActiveX was controversial from the start; while Microsoft claimed programming ease and good performance compared to Java applets in its marketing materials, critics of ActiveX were quick to point out security issues and lack of portability, making it impractical for use outside protected intranets . The ActiveX security model relied almost entirely on identifying trusted component developers using
936-731: The presumptive future OS for Macintosh. In 1993, John Sculley called Project Amber (a codename for what would become OpenDoc) a path toward Taligent. Taligent was considered the future of the Macintosh, and work on other tools like MacApp was considerably deprioritized. Through OpenDoc's entire lifespan, analysts and users each reportedly "had very different views" of the OpenDoc initiative. They were confused about their role, regarding how much of OpenDoc-based development would be their responsibility versus IBM's and Apple's responsibility. There were never many released OpenDoc components compared to Microsoft's ActiveX components. Therefore, reception
972-739: The same time, a group of third-party developers had met at the Apple Worldwide Developers Conference (WWDC '91) and tried to establish a standardized document format, based conceptually on the Interchange File Format (IFF) from Electronic Arts . Apple became interested in this work, and soon dedicated some engineers to building and documenting such a system. Initial work was published on the WWDC CDs, and several follow-up versions on later developer CDs. A component document system would only work with
1008-551: The solution for future development. As OpenDoc gained currency within Apple, the company started to push Symantec into including OpenDoc functionality in Bedrock. Symantec was uninterested in this, and eventually gave up on the effort, passing the code to Apple. Bedrock was in a very early state of development at this point, even after 18 months of work, as the development team at Symantec suffered continual turnover. Apple proposed that
1044-569: The standard Win32 APIs. Microsoft dropped ActiveX support from the Windows Store edition of Internet Explorer 10 in Windows 8 . In 2015, Microsoft released Microsoft Edge , the replacement for Internet Explorer, with no support for ActiveX; this event marked the end of ActiveX technology in Microsoft's web browser development. Microsoft Edge ships with the "Internet Explorer mode" feature, which supports ActiveX. Microsoft has developed
1080-639: The time. In October 1996, Microsoft released a beta version of the ActiveX Software Development Kit (SDK) for the Macintosh , including a plug-in for Netscape Navigator on the Mac, and announced its plan to support ActiveX on Solaris later that year. Six months and two more beta releases later, there had yet to be any commercially available Macintosh ActiveX plugins. In 1997, NCompass Labs in cooperation with Microsoft released
1116-712: Was dropped. Another OpenDoc container application, called Dock'Em, was written by MetaMind Software under a grant from the National Science Foundation and commissioned by The Center for Research in Math and Science Education, headquartered at San Diego State University . The goal was to allow multimedia content to be included in documents describing curriculum. Several physics simulations were written by MetaMind Software and by Russian software firm Physicon ( OpenTeach ) as OpenDoc parts. Physics curricula for high school and middle school focused on them. With
OpenDoc - Misplaced Pages Continue
1152-436: Was hopelessly buggy. Bare Bones Software tested the market by making its BBEdit Lite freeware text editor available as an OpenDoc editor component. RagTime , a completely integrated office package with spreadsheet, publishing, and image editing was ported to OpenDoc shortly before OpenDoc was cancelled. Apple's 1996 release of ClarisWorks 5.0 (the predecessor of AppleWorks ) was planned to support OpenDoc components, but this
1188-399: Was launched with OpenDoc as a foundation. Taligent was formed as a primary objective of AIM, adopted OpenDoc, and promised somewhat similar functionality although based on very different underlying mechanisms. OpenDoc progressed, but Apple greatly confused developers by suggesting that it should be used only for porting existing software, but new projects should instead be based on Taligent as
1224-612: Was no longer bundled. AppleShare IP Manager from versions 5.0 to 6.2 relied on OpenDoc, but AppleShare IP 6.3 eliminated this, as the first Mac OS 9 compatible version, released in 1999. Apple officially relinquished the last trademark on the name "OpenDoc" on June 11, 2005. Software componentry To find the right level of component granularity, software architects have to continuously iterate their component designs with developers. Architects need to take into account user requirements, responsibilities and architectural characteristics. For large-scale systems developed by large teams,
1260-636: Was rapidly losing money at the time and many in the industry expected the company to fail. In March 1997, OpenDoc was discontinued with the return of Steve Jobs to Apple, who had been at NeXT during its development. He said Apple's management "put a bullet through [OpenDoc's] head", and most of the Apple Advanced Technology Group was laid off in a big reduction in force. Other sources noted that Microsoft hired away three ClarisWorks developers who were responsible for OpenDoc integration into ClarisWorks. Since Mac OS 8.5 , OpenDoc
1296-575: Was very mixed. Starting in 1992, Apple attempted to replace MacApp development framework with a cross-platform solution called Bedrock , from Symantec . Symantec's Think C was rapidly becoming the tool of choice for development on the Mac. While collaborating to port Symantec's tools to the PowerPC , Apple learned of Symantec's internal porting tools. Apple proposed merging existing MacApp concepts and code with Symantec's to produce an advanced cross-platform system. Bedrock began to compete with OpenDoc as
#418581