Technology Overview
MySQL Clustering
Technology Overview Contents – 1. Swing 2. HyperText Markup Language 3. JavaScript 4. Java Server Faces 5. Java Micro Edition 6. C# 7. ASP .net 8. Java API for XML Web Services 9. VirtualBox 10. MySQL 11. GlassFish 12. Internet Information Services 13. NetBeans 14. Visual Studio 15. Windows Vista 16. Windows Server 2003 17. Fedora 18. OpenSolaris
Technology Overview
MySQL Clustering
Java Swing Swing is a widget toolkit for Java. It is part of Sun Microsystems' Java Foundation Classes (JFC) — an API for providing a graphical user interface (GUI) for Java programs. Swing has been developed to build a set of extensible GUI components that enable developers to develop powerful Java front ends, for commercial applications, more rapidly. It provides a native look and feel that emulates the look and feel of several platforms, and also supports a pluggable look and feel that allows applications to have a look and feel unrelated to the underlying platform. Swing architecture is rooted in the model-view-controller (MVC) design. MVC architecture breaks a visual application into three separate parts – • A model that represents the data for the application. • The view that is the visual representation of that data. • A controller that takes user input on the view and translates that to changes in the model. But totally separating the view from the control is an unmanageable task. So Swing implements a separable model design, loosely based on the MVC, which treats the model part of a component as a separate element, but collapses the view and controller parts of each component into a single UI (user-interface) object. This separation provides programs with the option of plugging in their own model implementations for Swing components. Swing's pluggable look-and-feel architecture allows us to provide a single component API without dictating a particular look-and-feel. The Swing toolkit provides a default set of look-and-feels; however, the API is "open" -- a design that additionally allows developers to create new look-and-feel implementations by either extending an existing look-and-feel or creating one from scratch. Although the pluggable look-andfeel API is extensible, it was intentionally designed at a level below the basic component API in such a way that a developer does not need to understand its intricate details to build Swing GUIs.
Technology Overview
MySQL Clustering
HyperText Markup Language HyperText Markup Language (HTML) is a text and image formatting language used by web browsers to dynamically format web pages. It is used to define how text should be displayed in a browser and to supplement that text with interactive forms, embedded images and other objects. HTML is written in the form of tags surrounded by angle brackets. HTML is also used to describe the appearance and semantics of a document, and can include embedded scripting language code (such as JavaScript or VBScript) that can affect the behavior of Web browsers and other HTML processors. HTML markup consists of the following key components: • Elements and their attributes • Character and Entity references • Pre-written Document Type Declaration for validation
Technology Overview
MySQL Clustering
JavaScript JavaScript is a scripting language used primarily at the client side for development of dynamic websites. The primary use of JavaScript is to write functions that are embedded in or included from HTML pages and interact with the Document Object Model (DOM) of the page. JavaScript is characterized by the following features: • Imperative and Structured – supports all the structured programming syntax in C • Dynamic – provides dynamic typing that associates the types with values, not variables. It also provides an eval function that can execute statements provided as strings at run-time. • Prototype-based – uses prototypes instead of classes for defining object properties, including methods, and inheritance. It is possible to simulate many class-based features with prototypes in JavaScript. • First-class functions – Functions are first-class; they are objects themselves. As such, they have properties and can be passed around and interacted with like any other object. Because JavaScript code can run locally in a user's browser it can respond to user’s actions quickly, making the application feel more responsive. Furthermore, JavaScript code can detect user’s actions which HTML alone cannot, such as individual keystrokes.
Technology Overview
MySQL Clustering
Java Server Faces Java Server Faces (JSF) is a new standard Java framework for building Web applications. It simplifies development by providing a component-centric approach for developing Java Web user interfaces. JSF also ensures that applications are well designed with greater maintainability by integrating Model-View-Controller (MVC) design pattern into its architecture. Java Server Faces provides • A set of APIs for representing user interface (UI) components and managing their state, handling events and input validation, converting values, defining page navigation, and supporting internationalization and accessibility. • A standard GUI component framework for tool integration. • A set of HTML form input elements that represent the server-side GUI components. • A JavaBeans model for translating input events to server-side behavior. • Automatic view presentation, customized to client type (e.g. browser or media type). The components in the framework can remember the state. At runtime, the framework interacts with the user, dispatches and generates views, and invokes business functions. JSF uses Java Server Pages to generate browser-specific HTML. The input elements in the JSP pages correspond to the server-side GUI components. Although JSP pages are the most common form of presentation, JSF is specifically designed to be independent of JSP pages. A JSF application could use any presentation technology to interact with a user.
Technology Overview
MySQL Clustering
Java Platform, Micro Edition (Java ME) Java ME is a Java platform designed for mobile devices and embedded systems. It was formerly known as Java 2 Platform, Micro Edition (J2ME). Java ME was designed by Sun Microsystems; to replace a similar technology, PersonalJava. Java ME includes flexible user interfaces, robust security, built-in network protocols, and support for networked and offline applications that can be downloaded dynamically. Applications based on Java ME are portable across many devices; yet leverage each device’s native capabilities. Java ME provides a wide arsenal of configurations and profiles supporting a wide range of mobile devices, such as cell phones, and embedded devices like Set-top boxes and PDAs. The Java ME Architecture comprises of three software layers – The first layer primarily consists of the JVM, which directly interacts with the native OS. It is followed by the Configuration layer which handles the interaction between the profile layer and the JVM. There are two types of configurations involved in Java ME application development, which are: • Connected Limited Device Configuration or CLDC It contains only the necessary libraries to run a Java ME application. • Connected Device Configuration or CDC It contains most of the libraries of Java SE (excluding GUI related classes) and hence provides a rich platform for development. The configuration to be used is mainly decided on the memory capability of the device. And the JVM underneath the configuration is termed as CVM for CDC and KVM for CLDC. The third layer is the profile layer, which consists of the minimum set of application programming interface (API) for the small devices. One of the most predominant profiles used in this layer is the MIDP profile. Other profiles available include Dojo, KJava, etc.
Technology Overview
MySQL Clustering
C# C# is a multi-paradigm programming language that encompasses functional, imperative, generic, object-oriented (class-based), and component-oriented programming disciplines. It was developed by Microsoft as part of the .NET initiative. C# is one of the programming languages designed for the Common Language Infrastructure. C# is intended to be a simple, modern, general-purpose, object-oriented programming language. It has an object-oriented syntax based on C++. C# has a unified type system called Common Type System (CTS). A unified type system implies that all types, including primitives such as integers, are subclasses of the System.Object class. For performance reasons, primitive types (and value types in general) are internally allocated on the stack. C# has various features like – • There are no global variables or functions. • Local variables cannot shadow variables of the enclosing block, unlike C and C++. • Automatic garbage collection. • More flexible namespaces. • No switch-case fall-through. • Variable-length argument lists - printf style formatted output. • Support for internationalization. • Memory address pointers can only be used within blocks specifically marked as unsafe, and programs with unsafe code need appropriate permissions to run. All the above features make it a very powerful object-oriented programming language.
Technology Overview
MySQL Clustering
Active Server Pages with .NET ASP.NET is a web application framework developed and marketed by Microsoft to allow programmers to build dynamic web sites, web applications and web services. It is the successor to Microsoft's Active Server Pages (ASP) technology. ASP.NET is built on the Common Language Runtime (CLR), allowing programmers to write ASP.NET code using any supported .NET language. .NET pages, known officially as "web forms", are the main building blocks for application development. Web forms are contained in files with a .aspx extension; these files typically contain static (X)HTML markup, as well as markup defining server-side Web Controls and User Controls. The dynamic program code is dealt by using the code-behind model, which places this code in a separate file or in a specially designated script tag. Code-behind files typically have names like MyPage.aspx.cs or MyPage.aspx.vb. When using this style of programming, the developer writes code to respond to different events, like the page being loaded, or a control being clicked, rather than a procedural walk through the document. This allows a web designer, to focus on the design markup with less potential for disturbing the programming code that drives it. ASP.NET aims for performance benefits over other script-based technologies (including Classic ASP) by compiling the server-side code to one or more DLL files on the web server. This compilation happens automatically the first time a page is requested.
Technology Overview
MySQL Clustering
Java API for XML Web Services The Java API for XML Web Services (JAX-WS) is a Java programming language API for creating web services. JAX-WS uses annotations to simplify the development and deployment of web service clients and endpoints. JAX-WS belongs to the Sun Microsystems "Core Web Services" group and is typically used in conjunction with other technologies such as JAXB, JAX-RPC, etc. JAX-WS is designed to take the place of the Java RPC interface in Web services and Web based applications. JAX-WS is also used to build Web services and corresponding clients that communicate using XML to send messages or use remote procedure calls to exchange data between client and service provider. JAX-WS represents remote procedure calls or messages using XML-based protocols such as SOAP, but hides SOAP's innate complexity behind a Java-based API. Clients create a local proxy to represent a service and then invoke methods on the proxy. The JAX-WS runtime system converts API calls and matching replies to and from SOAP messages.
Technology Overview
MySQL Clustering
VirtualBox VirtualBox is an x86 virtualization software package, developed by Sun Microsystems as part of its Sun xVM virtualization platform. It is installed on an existing host operating system; within this application, additional operating systems, each known as a Guest OS, can be loaded and run, each with its own virtual environment. Supported host operating systems include Linux, Mac OS X, Microsoft Windows, and Solaris. Supported guest operating systems include Microsoft Windows, Linux, Solaris, BSD, IBM OS/2 and several others. Several guest operating systems can be loaded. Each can be started, paused and stopped independently. The host operating system and guest operating systems can communicate with each other, using the network facility provided. Most prominent among the features provided by VirtualBox include – • • • • • • •
Snapshots Special drivers and utilities to facilitate switching between systems Shared folders USB support Microsoft VHD support 3D Graphic Acceleration Remote Display and Multi Monitor Support
Technology Overview
MySQL Clustering
MySQL MySQL is a Relational Database Management System (RDBMS) and is a product of Sun Microsystems. The program runs as a server providing multi-user access to a number of databases. It is widely used in mid-tier organizations which need to store, retrieve and manage huge amounts of data. MySQL is popular for web applications and acts as the database component of the LAMP software stack. MySQL works on many different system platforms such as FreeBSD, Linux, Mac OS X, OpenBSD, OpenSolaris, SunOS, and Microsoft Windows. Some of the important features provided by MySQL include the following: • • • • • •
Cross-Platform support Stored Procedures Cursors Triggers Updatable Views Asynchronous and Synchronous replication
Besides this, features such as multiple storage engines, custom storage engines, commit grouping are implemented flawlessly by MySQL. It is used in several high-scale World Wide Web products, such as Google and Facebook.
Technology Overview
MySQL Clustering
GlassFish GlassFish is an open source application server project led by Sun Microsystems for the Java EE platform. It is free and is the leading open-source and open community platform for building and deploying next-generation applications and services. It uses a derivative of Apache Tomcat as the servlet container for serving web content, with an added component called Grizzly which uses Java NIO (Non-Blocking I/O) for scalability and speed. GlassFish is presently distributed as two versions – Version 2 and Version 3. Notable features of GlassFish include transaction management, security and several others. GlassFish has extensive support for Java Enterprise Edition components like, Web Services, Enterprise Java beans, etc.
Technology Overview
MySQL Clustering
Internet Information Services Internet Information Services (IIS) – formerly called Internet Information Server is a set of Internet-based services for servers created by Microsoft for Microsoft Windows. The services provided by IIS include FTP, FTPS, SMTP, NNTP and HTTP/HTTPS. IIS features a modular architecture consisting of a core web server. This allows users to customize the features they need and the functionalities can be extended by using custom modules. IIS is the only server compatible with the .net framework and is used mostly to host ASP.net pages.
Technology Overview
MySQL Clustering
NetBeans NetBeans is a comprehensive, modular IDE (Integrated Development Environment). It is a platform for building OS-independent applications. NetBeans is an open source product fully supported by Sun Microsystems Inc. and is presently the official IDE of Java. NetBeans was initially planned to be a collection of Network enabled JavaBean components which coined the name. A few noteworthy features of NetBeans include – • • • • • • • •
Smart source code editor with auto-completion Project Manager Refactoring Support Swing GUI Builder Visual Web Developer J2EE support Mobile Development Profiler, Debugger and Version Control
NetBeans supports various technologies like – • • • • •
Programming – C, C++, Java, Ruby, Groovy, Python Web Development – HTML, CSS, JavaScript, XML, UML, JSP, PHP, EJB Web Frameworks and Models – SOA, JSF, JAX – WS, JSTL, Rails, Grails Databases – SQL, JDBC, Hibernate Rich Internet Applications – JavaFX, AJAX
And several others.
Technology Overview
MySQL Clustering
Microsoft Visual Studio Microsoft Visual Studio is an Integrated Development Environment (IDE) from Microsoft. It can be used to develop console and graphical user interface applications along with Windows Forms applications, web sites, web applications, and web services in both native code together with managed code for all platforms supported by Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework and Microsoft Silverlight. Visual Studio includes – • A debugger that works both as a source-level debugger as well as machinelevel debugger. • A code editor that supports syntax highlighting and code completion using IntelliSense for not only variables, functions and methods but also language constructs like loops and queries. IntelliSense is supported for the included languages, as well as for XML and for Cascading Style Sheets and JavaScript when developing web sites and web applications. • A host of visual designers And other tools. It allows plug-ins to be added that enhance the functionality at almost every level including adding support for source control systems like editors and visual designers for domain-specific languages or adding new toolsets for other aspects of the software development lifecycle. Built-in languages of Visual Studio include C/C++ (via Visual C++), VB.NET (via Visual Basic .NET), and C# (via Visual C#). Support for other languages such as Chrome, F#, Python, and Ruby among others has been made available via language services which are to be installed separately. It also supports XML/XSLT, HTML/XHTML, JavaScript and CSS.
Technology Overview
MySQL Clustering
Windows Vista Windows Vista is a line of operating systems developed by Microsoft for use on personal computers, including home and business desktops, notebook computers, and media centers. Windows Vista is the successor to Windows XP, one of the most popular Operating Systems in the Windows lineage. Windows Vista introduced several new features to the Windows line, including: • • • • • •
Windows Vista includes an updated Graphical User Interface and visual style dubbed Windows Aero. Vista aims to increase the level of communication between machines on a home network. Vista includes the version 3.0 of the .NET framework, allowing software developers to write applications without traditional Windows APIs. Vista introduced several features like Windows Internet Explorer 7, Windows Media Player 11, Windows Media Center, etc. Improved security was a primary design goal to Vista. User Account Control (UAC) is perhaps the most significant and visible of these changes. The Windows Firewall has been upgraded with new support for filtering both incoming and outgoing traffic.
Technology Overview
MySQL Clustering
Windows Server 2003 Windows Server 2003 (also referred to as Win2K3) is a server operating system produced by Microsoft as the successor of Windows 2000 Server. It is more scalable and delivers better performance than Windows Server 2000. Windows Server 2003 comes in a number of editions. Notable of them are – Windows Small Business Server, Web Edition, Standard, Enterprise, Datacenter, Compute Cluster Server and Storage Server. Notable features of Windows Server 2003 include – • • • • • • • •
Ability to share files and printers Act as an application server Host message queues Provide email services Authenticate users Acts as an X.509 certificate server Provide LDAP directory services Serve streaming media
And several others service-oriented features.
Technology Overview
MySQL Clustering
Fedora Fedora is an RPM-based, general purpose operating system built on top of the Linux kernel, developed by the community-supported Fedora Project and sponsored by Red Hat. Fedora's mission statement is – Fedora is about the rapid progress of Free and Open Source software. It has different versions ranging from Fedora 1 to Fedora 11. Before Fedora 7 there were two main repositories – Core and Extra. Core contained all the base packages that were required by the OS as well as other packages maintained by Red Hat developers. Fedora Extras, introduced from Fedora Core 3 was community maintained. Since Fedora 7, Core and Extras were merged, dropping Core from the name. Security is one of the most important features in Fedora. One of the security features in Fedora is Security-Enhanced Linux, a Linux feature that implements a variety of security policies, including mandatory access controls, through the use of Linux Security Modules (LSM) in the Linux kernel.
Technology Overview
MySQL Clustering
OpenSolaris OpenSolaris was founded as an Open Source project by Sun Microsystems in June of 2005, to produce Solaris-compatible operating systems. It is the first and only System V-based UNIX to have been released into Open Source. OpenSolaris is primarily built on Solaris and is licensed through GNU. Features of OpenSolaris include – • • • •
Zetta-Byte File System (ZFS) - The first 128 bit file-system RAID-Z model through ZFS Image Packaging System – A network based, network aware packaging system Operating system level virtualization technology using Solaris Container ( including Solaris Zones ) • Dynamic Resource Pools and Fair Share Scheduler • DTrace – A dynamic troubleshooting and analysis tool The features and the Operating Systems support several architectures like – x86 and SPARC.