Migration installation is the way to migrate systems from one version of an operating system (OS) level to another OS version. This method of installation preserves all user data configurations and file systems. Migration installation can be done in various ways and this article provides steps for migrating system from one version to other version.
Using applications is the main purpose of a Linux server. Whether your newly installed application runs from a desktop or the command line, this article helps you use your Microsoft Windows experience to quickly understand how to run applications on Linux.
In this tutorial, the fifth in a series of seven tutorials covering intermediate network administration on Linux, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 202. By following this tutorial, you will examine several protocols' centralized configuration of network settings on clients within a network. DHCP is widely used to establish basic handshaking to clients machines such as assigning IP addresses. At a higher level, NIS and (more often) LDAP are used for arbitrary shared information among machines on a network. This tutorial also discusses PAM, which is a flexible, networked, user authentication system.
If your PHP applications perform beyond CRUD operations, chances are you have worked with XML. Navigating an XML document or data stream for the desired data elements can be cumbersome, though, and even somewhat intimidating for PHP developers. It can be especially overwhelming when the XML data structure is complex. XPath is a W3C standard whose sole purpose is just that -- getting to the right data element, or, specifically, the desired node. PHP supports XPath as part of its XML classes and functions. In this article you explore some basic scenarios for locating information in XML and how XPath can do the hard work for you in your PHP applications.
This article is Part 2 of a two-part series about Riak, a highly scalable, distributed data store written in Erlang and based on Dynamo, Amazon's high availability key-value store. For websites with heavy loads, a scalable caching solution can lighten the load on the application and database servers. This particularly applies to data that is read often but updated only occasionally. Explore an in-depth example of an online betting site and how you can use Riak to implement a caching solution. You also will learn to integrate Riak with an existing website and look at other Riak features such as search and how to use it to directly serve user requests. You will need a working Riak cluster if you want to follow along with the examples. You can find the steps for setting up a cluster locally in Part 1 of this series.
This article takes a detailed look at the design principles, the basis for deploying VPN, and the IPSEC protocol concept, providing a description of the general features of IPSEC and of the mechanisms required for its implementation. This article was specially selected for translation by developerWorks Russia as an example of developerWorks world-wide offerings.
This is Part 1 of a two-part series about Riak, a highly scalable, distributed data store written in Erlang and based on Dynamo, Amazon's high availability key-value store. This article provides an introduction to Riak and covers the basics of storing and retrieving items in Riak using its HTTP API. Some of Riak's other features will also be introduced.
Traditionally, DB2 for IBM DB2® catalog views have only provided metadata about existing database objects. A new set of catalog views also provide information about your IBM i system environment. Specifically, these view make it easy to access information about the Group PTFs and TCP/IP network connections related to your DB2 for i database.
The revolutionary effects of social networks have not missed the world of software development. Many services emerged to support collaboration on projects over the Internet, especially in the world of open-source software. Concepts such as distributed version control, routine forking, and pull requests are in some ways changing the basic process of group development. One of the most popular social networks for software collaboration is GitHub, whose motto is "Social Coding." Learn about development social networks in the context of GitHub, but with principles applicable to other sites such as BitBucket, and even to your organization's internal systems.
DD-WRT brings all the power of the Linux networking stack to inexpensive wireless routers, turning a consumer router into a mighty networking powerhouse. Learn how to install and secure DD-WRT, and learn about the powerful, flexible command line behind the GUI.
Suppose you are a C++ developer and you need to do some prototyping quickly in Ruby. When you pick up a Ruby reference book like the Pickaxe or browse the Ruby site, you see familiar constructs like class declaration, support for threads, and exception handling. Just when you thought you knew how Ruby works, you realize that concurrency in your Ruby code is not behaving like Boost threads, catch and throw are not what they seem, and others have used something called self all over the place in their Ruby script. Welcome to Ruby!
Meet the gKrypt engine, the world's first package to employ general purpose graphics units (GPGPUs) for data encryption. It uses an Advanced Encryption Standard (AES) based 256-bit block cipher. This is the second article in a two-part series on AES encryption and the gKrypt engine. Part 1 introduced gKrypt and explained the AES algorithm in detail, its parallel breakdown and how to map it on a massive GPU architecture using the Compute Unified Device Architecture (CUDA). Part 2 looks at how AES is implemented on CUDA.
Meet the gKrypt engine, the world's first package to employ general purpose graphics units (GPGPUs) for data encryption, which is an important tool for information security. It uses an Advanced Encryption Standard (AES) based 256-bit block cipher to provide robust security. In this Part 1 of a two-part series, explore the AES, the GPU port of the Rijndael algorithm for Linux, the parallelizing of the AES algorithm, and the use of the gKrypt Engine supporting CUDA for NVIDIA-based GPUs.
Virtual Network Computing (VNC) is a popular tool for providing remote access to computers. The usual VNC configuration is optimized for single-user workstations, and logging in to the VNC port directly accesses a single user's desktop. This configuration is awkward on multiuser computers, however. Fortunately, you have an alternative. By linking VNC to a Linux computer's normal X Display Manager Control Protocol (XDMCP) server, accessing the VNC port enables users to provide their user names and passwords, thereby enabling a single VNC server instance to handle multiple user logins.
Select the most suitable MapReduce implementation for large scale data analysis jobs based on your skills, preferences, and requirements. MapReduce is a simple and powerful programming model that enables the easy development of scalable parallel applications to process vast amounts of data on large clusters of commodity machines. It isolates the application from the details of running a distributed program. But many programmers are unfamiliar with the MapReduce programming style and prefer to use a SQL-like language to perform their tasks. In this article, read an overview of high-level languages and systems designed to tackle these problems and add declarative interfaces on top of the MapReduce framework.
Spring Roo Advanced add-ons provide the mechanisms to add Java code in applications (for example, building an add-on that can write equals and hashcode methods for your domain object). With the addon create command, you can create a template of an advanced add-on. You then can extend the template to meet developer requirements. This article walks through the steps to create an advanced add-on.
In Part 1 of this series, we looked at building a CRUD-based application in minutes with Roo. Here in Part 2, we will extend that application to a full-fledged enterprise application by adding features such as Spring security, email support, and many others.
Keep wireless security simple. hostapd, the Host Access Point daemon provides solid WiFi encryption that meets enterprise standards without all the overhead of running FreeRADIUS. Learn more about this tool and how to incorporate it into your environment.
Spring Roo is a RAD tool that lets you build applications (mainly web) quickly and easily. Under the hood, Spring Roo is based on OSGI add-on architecture, which makes it easy to extend Spring Roo by adding add-ons. Spring Roo provides commands to create add-ons that can be very easily made available to the Spring Roo user community. In this article, we first talk about Spring Roo architecture, talking about how Spring Roo leverages its own add-on architecture to provide different features, then we will create add-ons using the Roo shell and modify them to suit our needs.
Spring Roo is a lightweight productivity tool for Java technology that makes it fast and easy to develop Spring-based applications. Applications created using Spring Roo follow Spring best practices and are based on standards such as JPA, Bean Validation (JSR-303), and Dependency Injection (JSR-330). Roo offers a usable, context-aware, tab completing shell for building applications. Spring Roo is extensible and allows add-ons, enhancing its capability. This article introduces Spring Roo and provides step-by-step instructions on building Spring Roo source on Windows and *nix systems.
Android, the most commonly used smartphone platform, also functions on mobile tablets. XML is the standard medium of data exchange. You can use the same builder, parser, and transformer APIs for standard XML parsing and transformation and for Android. In this article, create and parse an XML document on an Android device using a DocumentBuilder object obtained from a DocumentBuilderFactory. You'll parse the XML document using an extension of an XML pull parser.
Take the rapid development of Roo a step further by creating applications to work in the cloud with Cloud Foundry, the first open platform as a service project created by VMWare. Learn more about the environment and then deploy an application into Cloud Foundry using the Roo shell.
PubSubHubbub is an open protocol of web hooks for notifications of updates to news feeds in a publish/subscribe framework. It is defined as a set of HTTP server-to-server interactions integrated into Atom and RSS extensions. Despite the odd name, PubSubHubbub is fairly straightforward to use for designing applications with a lot of information updates. Learn about the standard and open-source implementations and support software for PubSubHubbub.
EPUB 3.0, which is the latest revision of the industry-standard XML e-book format, jumps into modern web technology by embracing HTML5 and CSS3. It retains its focus on XML-driven toolkits by requiring XHTML serialization and adding supplementary XML vocabularies, such as MathML and SVG. EPUB 3 offers a variety of options for developing advanced, digital-native publications. In this article, learn to create rich-layout pages using some new features in EPUB 3.
Linux is everywhere. If you peer into the smallest smart phone, to the virtual backbone of the Internet, or the largest and most powerful supercomputer, you'll find Linux. That's no simple feat given the range of capabilities expected from these platforms. Discover the omnipresence of Linux and how it supports devices large and small as well as everything in between.
Learn why you should move a PHP application to DB2(R), how to plan the migration, how to execute it, how to support it, and how to handle potential risks based on the experience of an IBM Intranet application case study. This four-part series shares lessons from a successful MySQL-to-DB2 migration for a mission-critical PHP Intranet application used by 4,000 global users within IBM to support content production for ibm.com. Part 4 describes the steps taken to deploy and support the application.
Part 1 of this series showed how to use microdata with Schema.org terms so search engines can display your content better in search results. It also showed how to reuse that same microdata markup to improve the display on your own site. In this article, learn to use microdata to enable a collaborating group of site owners to easily hook up their sites and share content on a centralized site.
The microdata specification lists two reasons why you might want to use microdata: To allow generic scripts to provide services that are customized to the page or to enable content from a variety of cooperating authors to be processed by a single script in a consistent manner. In this two-part series, learn to use microdata in both of these ways, starting with generic scripts on top of microdata. In this article, you will write one snippet of HTML to give you both an interactive event map and to enable Google, Bing, and Yahoo to display your page better in search results with Rich Snippets.
This article gives you insight into the memory usage of Java code, covering the memory overhead of putting an int value into an Integer object, the cost of object delegation, and the memory efficiency of the different collection types. You'll learn how to determine where inefficiencies occur in your application and how to choose the right collections to improve your code.
MongoDB is a revolutionary data store that you can use to handle work queues composed of rich data structures. Learn techniques for applying this methodology to encoding video.
Apache Pig is a high-level procedural language for querying large semi-structured data sets using Hadoop and the MapReduce Platform. Pig simplifies the use of Hadoop by allowing SQL-like queries to a distributed dataset. Explore the language behind Pig and discover its use in a simple Hadoop cluster.
Django, a Python web framework, consists of an object-relational mapper (ORM), back-end controller, and template system. MongoDB is a document-oriented database (also known as a NoSQL database) effective for scaling and high performance. In this article, learn how to call MongoDB from Python (using MongoEngine), and integrate it into a Django project in lieu of the built-in ORM.
Most programmers think the XQuery language was developed to satisfy a niche market: A data querying and transformation language designed to handle XML data. In the case of relational databases, the prevailing practice is to use SQL for non-XML data and use XQuery for XML. This article makes the case that the powerful programming constructs available in the XQuery language make it a better programming language than SQL, and that this improvement in expressiveness and ease of use is enough to warrant the design of databases with an increasing emphasis on XML data types.
Explore robotics and how the cloud makes it more economical and available, with a broad range of sensors, actuators, computational resources, and applications. Remote access to a wider range of physical systems that can be time-shared and location-shifted, plus simulation and building instances on site, will vastly expand access to robotics. Today, thanks to the cloud, hands-on interaction with remote robotics is more feasible. This article provides a starting point for cloud-based robotics educational strategy.
Improve the performance of your Python development and add flexibility with PyPy with just-in-time compiler implementation. Learn about PyPy, its benefits, and how it can accelerate development of high-performance applications.
Spark is an interesting alternative to Hadoop, with a focus on in-memory data processing. This practice session explores multithread and multinode performance with Scala, Spark, and its tunable parameters.
Many UI components are available in the jQuery Mobile framework. This article provides a high-level overview of each element and how you can use it in a mobile website. It touches on specific UI components, explains the reasons to use them, and provides code examples of their use in a mobile website.
Learn how to add a Lightweight Directory Access Protocol (LDAP) authentication module to MediaWiki that will allow it to authenticate users against an LDAP directory. Gain a better understanding of MediaWiki, Apache Directory Services (ApacheDS), and Apache Directory Studio, and how you can use them to create an LDAP directory for testing.
With a rapidly growing mobile Web, if you haven't already started working on a PHP-driven mobile site or application, you soon will be. Detecting the capability of one mobile device among the thousands of offerings is nearly impossible with PHP alone. But with the Wireless Universal Resource FiLe (WURFL), this once daunting task becomes as simple as a few API calls to retrieve the device data you need and can use with your PHP site or application.
Did you know you can provide web services through your Drupal- powered site? Learn how to use this technique to offer more flexibility with your content.
ImageMagick is a suite of open source tools for creating, editing, and converting bitmap images. The advanced developer can leverage its many capabilities to produce quality, professional bitmap images, and other artwork for display on websites, in marketing brochures, and anywhere the artistic mood may strike. Licensed under the Apache 2.0 license, ImageMagick can be freely used, copied, modified, and distributed in both open and proprietary applications.
The pureXML capabilities of IBM DB2 allow you to store XML natively in a database without modification, while Adobe Flex applications can read XML directly and populate Flex user interfaces. In this three-part article series, you will create a microblogging application that takes advantage of pureXML, Web services, and Adobe Flex; and even allows you to publish your microblogging updates on Twitter.
Further explore how to use Python to create scripts for managing virtual machines using KVM. Learn how to add a GUI to expand on the simple status and display tool.
AuthenticRoast is an open source project that works with the Java Authentication Service Provider Interface for Containers (JSR 196) to let you develop custom authentication modules for use with container-managed, declarative security. Joe Sam Shirah shows how AuthenticRoast can minimize configuration impact on Java Enterprise Edition (JEE) containers and greatly reduce coding effort for custom security requirements. A downloadable WAR with demonstration code is provided.
Learn about shared memory and how to use it in web applications as a data storage option, benefiting from high speed, reliability, and data exchange with other applications. Provided examples show how it may help solve common problems in web application development.
Creating a successful open source Python project involves more than just writing useful code. It's about community engagement, increasing cooperation opportunities, craftsmanship, and support. Explore best practices to help you create your own successful project.
The jQuery Mobile framework is a quick and easy way to create mobile websites. However, you might not know that the framework has a decent API that you can use to extend the basic functionality. This article provides an overview of some of the most useful features in the API and gives you working code examples throughout.
RichFaces, like most other rich/Ajax component frameworks designed for use with JavaServer Faces (JSF), was extensively revamped for compatibility with the significant changes in JSF 2. Joe Sam Shirah examines changed and new RichFaces 4.1 components that provide the same functionality he demonstrated in "An introduction to RichFaces" with version 3.1. He also updates the setup requirements for using RichFaces with JSF.
Iptables is the standard Linux firewall application. It is easy to configure and maintain while powerful enough to provide the control expected from a high-end appliance. Learn how to get started with iptables, recover from common issues, and simulate a small-office usage scenario.
Java applications, which store their data in files, can benefit in many ways by accessing file-systems using transactions. Learn how to work with open source XADisk for transactional file access.
This series of articles explores how to use Python and Scripting Layer for Android (SL4A) to build applications for the Google Android platform. This article, the first in the series, shows what you need to do to get everything installed and running.
Efficient management of the numerous lines of JavaScript code in web applications can be a challenge. Asynchronous JavaScript and XML (Ajax) interactions heavily populate pages to provide a better experience to the user. Single page interfaces, which are becoming more common, are driven by Ajax. Backbone is a JavaScript framework that can be used to create model-view-controller (MVC)-like applications and single page interfaces. In this article, learn how useful Backbone can be for creating Ajax applications or single page interfaces.
Dojo Mobile is a Dojo-based widget set for creating mobile web applications. With Dojo Mobile, you can develop lightweight, high-performance mobile web applications. In this article, learn how Dojo Mobile addresses the performance issues, and how you can optimize Dojo Mobile-based user applications to make them as small and efficient as possible. [Several clarifications have been made in the text to better reflect the author's original intent.]
This two-part series explores how to use Python to create scripts for managing virtual machines using Kernel-based Virtual Machine (KVM). In this installment, learn the basics of using libvirt and the Python bindings to build a few simple status and display tools.
Get to know Hadoop scheduling, and explore two of the algorithms available today:fair scheduling and capacity scheduling. Also, learn how these algorithms are tuned and in what scenarios they're relevant.
Learn to build an iOS slideshow application as you walk through the process step-by-step in this article. The example application will communicate with a web server to retrieve an XML slideshow definition and display the images contained in the slideshow.
Create maintainable, style-driven documents that can be automatically distributed in different formats using Sphinx. Discover how Sphinx abstracts the tedious parts and offers automatic functions to solve common problems like title indexing and special code highlighting.
As digital records and information become the norm in healthcare, it enables the building of predictive analytic solutions. These predictive models, when interspersed with the day to day operations of healthcare providers and insurance companies, have the potential to lower cost and improve the overall health of the population. As predictive models become more pervasive, the need for a standard, which can be used by all the parties involved in the modeling process: from model building to operational deployment, is paramount. The Predictive Model Markup Language (PMML), is such a standard. It allows for predictive solutions to be easily shared between applications and systems. This article describes the latest release of PMML, Version 4.1, and several ways it can be used to expedite the adoption and use of predictive solutions in the healthcare industry.
Learn how to migrate OpenMRS into IBM DB2 and IBM WebSphere Application Server. This article shows you how to prepare the database, import the source code, and modify the project for WebSphere Application Server.
The high adoption rate of smartphones and tablet devices is ultimately increasing the demand for mobile web developers and designers. The jQuery Mobile framework lets you create mobile web experiences that rival the results of native application development by providing instant access to applications and websites via the web browser rather than making users download and install mobile applications. Learn how to use the jQuery Mobile theming framework to create custom-branded mobile websites and web applications.
With Google, Yahoo, and Bing's announcement of schema.org, microdata is quickly gaining ground as a way to create applications that rely on data from many different websites. In this article, learn how to use Drupal to add microdata to your pages. Easily make your content available for use in applications such as Google's Rich Snippets.
Even though MySQL is a good general-purpose database, if your application is search-heavy, you may get better performance by using Sphinx instead. Despite Sphinx being a full-text search tool, it can increase the speed of your application even when working with non-full-text queries. This article shows how to configure Sphinx for this task, includes some example queries, measures their execution times, and demonstrates some of the trade-offs involved in the change considering what you need to use Sphinx in a general, systematic way.
Mobile messaging, and Short Message Service (SMS) in particular, is a crucial communication channel for reaching out to your users. Messaging is also a central part of the consumer mobile experience. However, implementing mobile messaging applications is difficult and expensive due to barriers involved with interacting with closed telco services. This article reviews the background and challenges of mobile messaging, and discusses several technical approaches to address these challenges. After reading this article, you will be ready to incorporate interactive text messaging into your own applications.
Although Hadoop captures the most attention for distributed data analytics, there are alternatives that provide some interesting advantages to the typical Hadoop platform. Spark is a scalable data analytics platform that incorporates primitives for in-memory computing and therefore exercises some performance advantages over Hadoop's cluster storage approach. Spark is implemented in and exploits the Scala language, which provides a unique environment for data processing. Get to know the Spark approach for cluster computing and its differences from Hadoop.
A recent trend has been to build a strong connection between cloud application and service development and operations; in particular, this trend is leading to a tighter, more efficient integration of application life cycle management (ALM) tools with cloud computing. In this article, the authors will show you how to use the open source Apache Maven build management tool to automate build and deployment projects on IBM SmartCloud Enterprise. They will also demonstrate how to integrate the management of virtual machines on the cloud into the build and deployment life cycle by developing an Apache Maven plug-in that looks up and creates virtual machines that run a J2EE application server on the cloud. You'll also discover best practices for development and deployment on the cloud and how to use IBM Cloud API's and Maven to implement these practices.
Eclipse presents a wealth of capabilities for building tools for compiled languages like C and the Java programming language, but provides little support for scripting languages like Perl, Python, and PHP. For these and similar languages, the Eclipse Dynamic Languages Toolkit (DLTK) comes to the rescue. Walk through the process of building a DLTK-based IDE and discover sample code for each step.
Although MySQL is one of the most popular programs, many developers have felt the need to branch it into other projects, each offering their own speciality. Many interesting sub-projects and branches now exist.
OSGi has been acting as a de facto industry standard to build dynamic modular systems in the Java world and many other fields. Using a series of correlative examples, this article demonstrates the processes, scenarios, solutions and practices to develop an OSGi application in Eclipse. Read further to gain a systematic understanding of the OSGi framework and core services.
When extended with the downloadable IBM Integration Module, the IBM Optim pureQuery Runtime simplifies the process of generating DB2 static SQL for Hibernate and iBATIS applications. It does this without requiring changes to your application code or gathering SQL from production workloads. The Optim pureQuery Runtime also enables Hibernate and iBATIS applications that access DB2 or Informix to benefit from the heterogeneous batching feature in pureQuery. This article is part one of a four-part series about using the IBM Integration Module with Hibernate applications. This article includes a downloadable sample application that illustrates how you can easily enable static SQL and heterogeneous batch functions with Hibernate applications. The article also provides informal elapsed time performance measurements. Part 2 focuses on iBATIS applications.
Development teams that build applications using Hibernate as the Object Relational Mapper (ORM) or persistence mechanism spend significant time tuning the amount of data that Hibernate fetches from the database, and the number of SQL queries that Hibernate uses in each business use-case of the application. In this article, learn how the IBM InfoSphere Optim pureQuery auto-tuning feature for Hibernate automates the process of determining these problems and automatically fixing them without intervention. Both the application development team and DBAs benefit from the solution.
The best open source Python applications have great packaging. Learn more about what packaging is and basic implementation. Then, go a step farther and discover versioning and distribution as they relate to packaging.
Twitter is not only a fantastic real-time social networking tool, it's also a source of rich information that's ripe for data mining. On average, Twitter users generate 140 million tweets per day on a variety of topics. This article introduces you to data mining and demonstrates the concept with the object-oriented Ruby language.
Tracking software component dependencies can be challenging. Since some people interpret information well visually, there is a component to help you visually track dependencies and even highlight broken ones.
Access a JAX-RS web service with the Apache HttpClient library. Jersey, a reference implementation for JAX-RS, simplifies development of RESTful web services in the Java environment. Android is a popular smartphone and this article shows you how to create a JAX-RS client for Android. You'll create an Apache HttpClient library client to a JAX-RS web service.
Learn the basics and get started working with Eclipse, an extensible open source development platform.
Blogger is a free, popular blogging platform that lets users create their own weblogs, and post messages and news, through a WYSIWYG editing interface. With the Blogger Data API, which is REST-based, you can access Blogger content through any XML-compliant programming toolkit. In this article, learn how to use the Blogger Data API to list blog content, add or edit blog posts, and manipulate blog comments with the Zend Framework's Zend_Gdata component. You'll build a simple application that demonstrates the power of the Blogger API.
Develop online applications that are both thumb and user friendly for the mobile environment with PHP, XML, jQuery, jQuery mobile, and jQuery charting. In this article, build the back end and front end of a polling application that uses charting to show the results of each poll.
Users don't want to see something on your application that says, "Optimized for XYZ browser." They just want it to work. Learn how efficient unit testing of your JavaScript can make it easier for you to support more browsers.
Most businesses are interested in finding new ways to drive traffic and generate revenue from their online investments. One way to address this challenge is to use a recommendation engine, which can drive visitors to your web site to explore further offerings. These engines apply a variety of patterns and analyze user habits to offer recommendations to users, and can be helpful in presenting offerings that a user might not otherwise know about. This article explains how to integrate Apache Mahout, an open source recommendation engine, with IBM WebSphere Application Server V8.0 and IBM Rational Application Developer for WebSphere Software V8.0.3.
Cities face many challenges on their path to becoming smarter. Information exchange is particularly challenging among city agencies. The range of different vendor solutions deployed across agency and departmental boundaries can cause a problem. The solution is defining a common, standards-based smarter city data model that determines how information is structured and what it represents on a semantic level. Read about the core concepts and standards that are common across multiple smarter city domains, such as public safety, transportation, and water.
xdotool is a helpful library of instructions that allows programmers to emulate keystrokes and mouse actions. The particular strength of the tool comes when the keyboard or mouse is absent or in accessibility situations where the user is not physically able to employ regular input methods. This article has two goals: first, to provide an introduction to the use of xdotool in a Linux desktop environment, and second, to use voice input to trigger actions typically done through hardware input. A concluding example uses XML to store xdotool-oriented code fragments for insertion into auto-generated dialog manager code.
Enable swipe and pinch gestures for Linux applications by analyzing synclient program output for a Synaptics TouchPad.
Learn why to move a PHP application to DB2(R), how to plan the migration, how to execute it, how to support it, and how to handle potential risks based on the experience of an IBM intranet application case study. This four-part series shares lessons from a successful MySQL-to-DB2 migration for a mission-critical PHP intranet application used by 4,000 global users within IBM to support content production for ibm.com. Part 3 describes the steps taken to convert the PHP code.
In EPUB documents, you cannot detect some problems with normal validation methods. As long as the document validates as well-formed XML and follows the EPUB standard, it can appear to be correct but might not read correctly in an e-Reader. Examples include broken paragraphs, bad page numbering, and spelling errors caused by OCR scanning. But you can view and correct errors using two methods: with the EPUB editor Sigil and with PHP in combination with SimpleXML and the Enchant libraries. Regular expressions provide the key to efficient processing.
Many experts use AutoCAD in engineering, design, architecture, geography, and related fields. Combining AutoCAD data with GIS data, such as shapefiles, to use on maps is often useful. Learn about LibreDWG and dxflib, two open source libraries, that make the AutoCAD DXF and DWG file formats more accessible. Create a translator tool that writes to KML and shapefile formats and use the GDAL library to facilitate working with GML and shapefile formats.
Using mobile devices to browse the web has become the rule. As users of mobile devices increase in number, there is a corresponding spike in the development rate of mobile applications and mobile-friendly websites. For the mobile app developer, the main concern becomes how to develop an app that can display on the majority of devices. In this article, see how the Dojo Toolkit can help you create widgets for your application that mimic the interfaces of the most popular mobile devices. The Dojo Toolkit provides a mechanism to create mobile web apps using Cascading Style Sheets, HTML, and JavaScript.
Build the back end of a multiplayer, network-enabled tic-tac-toe game with a native Android front-end application in this article.
StudioNow proved that it is possible to build a successful technology business using open source software. In fact, StudioNow was so successful that AOL bought the company for US$36.5 million. Discover the decisions the company made for technology adoption and the value of involvement in open source communities.
Identi.ca is a popular free microblogging service that allows users to post status messages and news. Web application developers are able to create, access, and search these messages through the Identi.ca API. This two-part article introduces the Identi.ca API and illustrates how you use it with PHP to create dynamic web applications.
This tutorial presents a real-world example that integrates IBM Informix and ZK, a rich Internet application (RIA) framework. Informix is a flagship IBM RDBMS product, while ZK is a Java-based web application framework supporting Ajax applications. This event-driven framework enables creation of rich user interfaces with minimal knowledge and use of JavaScript. ZK's unique server-centric approach enables synchronization of components and events across the client and server via the core engine.
This tutorial highlights best practices when marking information to resources using markers, and then introduces annotations and decorators that you use to highlight markers within the workbench. By extending extension points, you can reuse and adapt the built-in functions in Eclipse and perform advanced resource marking, such as moving a text marker when editing text. We discuss methods that take advantage of the plugin model, which allows for an efficient, high performance, and integrated look and feel plugin.
Gretty is one of a new school of ultra-lightweight frameworks made for building web services. Built on top of the blazingly fast Java NIO APIs, Gretty leverages Groovy as a domain-specific language for web endpoints and Grape's Maven-style dependency management. In this article, get started with using Gretty to build and deploy Java web service applications.
Identi.ca is a popular free microblogging service that allows users to post status messages and news. Web application developers are able to create, access, and search these messages through the Identi.ca API. This two-part article introduces the Identi.ca API and illustrates how you use it with PHP to create dynamic web applications.
Spring, a platform used to run Java enterprise applications, provides several benefits including increased productivity and runtime performance. Spring Android, an extension of the Spring framework, simplifies the development of Android apps. The main features of Spring Android are a REST client for Android and Auth support for accessing secure APIs. Learn to access a RESTful web service with the Spring Android REST Client.
The new Globalize JavaScript plugin allows anyone to make their web application instantly support over 350 countries and languages with only a few lines of code. If your website has global customers, you need to adapt your website to them, and not make them adapt to your website. The Globalize plugin makes that easy, by using the power of client-side JavaScript.
Audacity is a sound-editing program with a complete set of tools for the visualization of stereo sound channels, and filters that allow you to easily modify select portions of the audio waveform. It is a programmable editor, so its functionality can be extended as the needs of your project extend. From making simple audio recordings to editing multi-channel productions, Audacity is simply awesome.
This article walks you through building the back end and front end of a GPS-enabled web application using PHP.
Calibre, an open source application, makes it easy to convert documents between different electronic publishing formats. Organizations can create documents in one format and use Calibre to quickly convert them to other formats, making those documents portable and easy for both internal users and customers to use.
Mashups4JFS is a tool that helps you easily create mashup programs in the JSF world. We continue our exploration with a look at creating RSS feeds for your application.
The art of data mining is a wide field, and mentioning the term to two different developers gives you two very different ideas about it. In this article, you learn what data mining is, its importance, different ways to accomplish data mining (or to create web-based data mining tools) and develop an understanding of XML structure to parse XML and other data in PHP technology.
This article will cover how to create and use the new WS-MediationPolicy to govern Web services in IBM WebSphere DataPower.
Linked Data and the Semantic Web have always been of interest to IBM Research but Linked Data has now become a central component of some of IBM's products strategy. The Rational group in IBM has for several years been employing a read/write usage of Linked Data as an architectural style for integrating a suite of applications, and we have shipped commercial products using this technology. The applications we have integrated in IBM are primarily in the domains of Application Lifecycle Management (ALM) and Integration System Management (ISM), but we believe that using read/write Linked Data as an application integration technology could be broadly relevant and applicable within the IT industry.
IBM Websphere Telecom Web Services Server (TWSS) uses security role mapping for tasks such as access to and administration of security services. For better administration, these security roles can be mapped to security identities of users/groups, which can be stored in LDAP for authentication and authorization. This article describes security role mapping with users/groups, how to integrate TWSS with IBM Tivoli Directory Server, and a tool to generate the TWSS users/groups LDIF file.
Proactive reliability. Many organizations still employ a "reactive" response when a failure occurs instead of taking more prudent proactive steps: The creation of a cloud failover policy with cloud-specific riders, each detailing components and tasks. The author provides a roadmap for such a policy and illustrates policy riders and scenarios of what proactive actions should be taken when failures happen.
This article proposes creating three classifications for each type of data your organization owns, then using those classifications to determine how to apply security to each type of data as you design the application that will use the data. It's called Regulatory Compliant Cloud Computing (RC3).
This article describes how the SOA reference architecture has been developed and used by IBM to help customers increase business flexibility as well as IT flexibility. The SOA RA reference architecture being used to help organizations achieve advanced levels of business agility and IT flexibility through service integration that are specifically in line with their unique SOA business objectives. IBM is also using an SOA reference architecture along with the Cloud reference architecture to help organizations define their cloud solutions.
In the first installment, part1 of this series, you learned about the basic functionalities of the currently available Enterprise Service Buses (ESBs). In part 1, you also learned about some of the difficulties in the use of the currently available ESBs. In the second installment, Part 2 of this series, you learned about the new concept of the Universal Ports type for ESB and how to implement Universal Ports. Universal Ports provide solution to the many of the problems that the current users of the ESBs experience. A Universal Port works analogous to the USB port of a computer, which is to connect devices of varied kind to connect to the computer. In a similar manner a Universal Port can be used to connect any application to the ESB and, indirectly, to the other applications. These applications may employ disparate forms of services to expose some or all of their functionality and still use a single port type. In this installment, part 3 of this series you will learn about the many benefits of Universal Ports.
Service-oriented architecture (SOA) has been a transformational technology used by enterprises to drive business advantages including agility, reduced cost, improved time to market and competitive advantage. This article highlights how standards are important for SOA solutions enhancing customer results and enabling interoperability.
This tutorial presents the reader with a concrete method for using a central repository in this example WebSphere Service Registry and Repository (WSRR) to implement business policies governing SOA message flows, enforced by the WebSphere DataPower SOA appliances. The necessary configuraton steps for both the WSRR and the WebSphere DataPower appliance are detailed.
Creating logical partitions on IBM Hardware Management Console (HMC) can often be a time consuming task and of course requires a certain level of technical skills on PowerVM technology. By using remote command execution on HMC and VMControl Representation State Transfer (REST) web services calls, you will be able to programmatically create logical partitions assigning virtual resources and enabling a simplified virtualization management.
This tutorial provides steps to configure an SSL for a Web service call from WebSphere Process Server to a non-WebSphere Web service. It covers generating client and sample server keys, importing certificates, configuring the SOAP UI for SSL, mocking up the Web service, and testing the SSL.
This article will be useful to developers who are starting out with WESB and WSRR, providing a reference point for building a simple solution using WID to showcase integration between the aforementioned products.
This article is about the solution architecture of an Expertise Location system that was implemented internally within IBM, interestingly enough called Expertise Locator. In this part of the article, we cover the Use Cases Model, the Solution Architecture, the Data Model and the Architectural Decisions of the Expertise Locator system.
In the first installment, part 1 of this series, you learned about the basic functionalities of the currently available Enterprise Service Buses (ESBs). In part 1, you also learned about some of the difficulties in the use of the currently available ESBs. In this installment, Part 2 of this series, you will learn about the new concept of the Universal Ports type for ESB and how to implement Universal Ports. Universal Ports provide solution to the many of the problems that the current users of the ESBs experience. A Universal Port works analogous to the USB port of a computer, which is to connect devices of varied kind to connect to the computer. In a similar manner a Universal Port can be used to connect any application to the ESB and, indirectly, to the other applications. These applications may employ disparate forms of services to expose some or all of their functionality and still use a single port type. In the installment, part 3 of this series you will learn about the many benefits of Universal Ports.
Access a JAX-RS web service with the Apache HttpClient library. Jersey, a reference implementation for JAX-RS, simplifies development of RESTful web services in the Java environment. Android is a popular smartphone and this article shows you how to create a JAX-RS client for Android. You'll create an Apache HttpClient library client to a JAX-RS web service.
Ensuring optimum performance is attained on systems processing large objects is an issue commonly faced by users of middle-ware software. In general, objects of 1M or more can be considered to be 'large' and require special attention. This article aims to provide you with the necessary information and advice required to successfully utilise the WebSphere Enterprise Service Bus (ESB) V7 product to process large objects efficiently in a 64 bit production environment.
Validator for WS-Policy in Eclipse is a plugin that helps troubleshoot WS-Policy issues. Learn how to use it to debug a problem with some WS-Policy used by IBM WebSphere Application Server. Also find out how to create your own schemas to use the validator with other WS-Policy assertions.
Logging can be used as a tool to monitor and debug the application. In this article, you will learn how to perform Web service message logging with Apache CXF. The article will demonstrate various ways in which you can implement message logging. It will illustrate the use of significant CXF features like Interceptors and Features to perform message logging. The article will also demonstrate message logging using Spring based bean configuration.
This tutorial demonstrates how to develop database driven web service using Hibernate and invoking it with J2ME and Android Client. Finally it shows how to develop a restful web service and deploy it in the Google cloud and then consuming the web service with an Android client.
Anonymous XML types can sometimes cause problems in Web services. This article explains these problems and describes how to avoid them.
Learn how to create web services for stateless EJB session beans in IBM Rational Software Architect, and how to use web services test explorer to test a web service.
In this installment, part 1 of this series, you will first learn about the basic functionalities of the currently available Enterprise Service Buses (ESBs). In this part 1, you will also learn about some of the difficulties in the use of the currently available ESBs. In the later installments of this series you will learn about the new concept of the Universal Ports type for ESB. Universal Ports provide solution to the many of the problems that the current users of the ESBs experience. A Universal Port works analogous to the USB port of a computer, which is to connect devices of varied kind to connect to the computer. In a similar manner a Universal Port can be used to connect to any application to the ESB and, indirectly, to the other applications. These applications may employ disparate forms of services to expose some or all of their functionality and still use a single port type.
Learn how to change the referenced Java Naming and Directory Interface (JNDI) resources of SOAP over JMS exports and imports so that they can receive and send SOAP messages using the IBM WebSphere MQ JMS provider rather than the SIBus JMS provider with WebSphere Process Server and WebSphere Enterprise Service Bus V7.0.
Increasingly, Representational State Transfer (REST) has become the preferred way of communicating in today's service-oriented architecture environments. There are many services and information sources that can be addressed via a URL and accessed using HTTP. On the other hand, there is still a significant amount of information stored in relational database management systems (RDBMS) -- like DB2. Modern RDMSes provide powerful processing features for relational data (through SQL) and XML data (through SQL/XML or XQuery).
IBM Initiate Patient is an industry-leading Enterprise Master Patient Indexing product. This article explores an integration feature of Initiate Patient, Outbound Broker, that allows it to send notifications about events within the hub to external systems. It demonstrates how Outbound Broker can be implemented in a web services framework.
Check out which SOA and web services tutorials and articles developerWorks readers are finding the most interesting.
Four of IBM?s SOA practitioners identify core IBM SOA Foundation components and usage scenarios, and walk you step-by-step through implementing them in real-world environments.
Spring beans are configured using the traditional XML approach. In this article, you will learn to write Spring beans and configure them using pure Java based configuration instead of using XML. The article will cover various annotations you can use to configure the bean. It will illustrate the Java based bean configuration by comparing it with the traditional XML based approach.
The authors illuminate the unique issues associated with applying IT governance to a services model, including the challenges of compliance auditing when service behavior is inherently unpredictable. They also show why services governance requires a more organizational, business-centric focus than ?conventional? IT governance.
In The New Language of Business, senior IBM executive Sandy Carter demonstrates how to leverage SOA, Web 2.0, and related technologies to drive new levels of operational excellence and business innovation.
This book follows up where the authors? best-selling Service-Oriented Architecture Compass left off, showing how to overcome key obstacles to successful SOA implementation and identifying best practices for all facets of execution?technical, organizational, and human.
This tutorial describes business-driven development with the ARIS2WebSphere methodology to automatically generate a BPEL process from ARIS SOA Architect and import this process into WebSphere Integration Developer. Sample scripts for ARIS SOA Architect and a plugin for WebSphere Integration Developer are provided. The tutorial also describes best practices for using the methodology.
This tutorial demonstrates how to develop a CXF web service which can upload a submitted file from the user and store it in a specific directory. The example is built with widely used Eclipse IDE.
This tutorial demonstrate how to develop Hello User web service and followed by File Download web service development using JAX-WS. Finally developing a SAAJ client for processing Product Catalog web service.
This tutorial demonstrate how to develop Credit Card Validation web service with Code first (Bottom up) approach and followed by Product Catalog web service development with Contract First (Top Down) approach using Axis2. Code First Approach is the most popular approach of developing a web service, whereas Contract First approach is the correct way to build any new web service.
With most organizations and enterprises moving towards Enterprise service-oriented architecture, it is important to look beyond the jargon into what it means for developers and implementers and what exactly are the facilities provided by the various software products and solutions to enable Enterprise SOA based integration. In the current economic and heterogeneous business scenarios involving complex web service applications, IBM InfoSphere Information Server cost effectively addresses the challenges of business integration across enterprises by invoking Complex Web Services with its ASB (Application Services Backbone) Packs.
Aegis is one of the databinding standard supported by Apache CXF web service framework. Databinding is a feature that performs mapping between Java objects and XML documents. In this article, you will learn how to develop a CXF based web service and customize its data binding needs using Aegis. The article will also feature benefits of using Aegis. The article will specifically focus on the use of Aegis external mapping file to customize the binding.
Convergence of telecommunications with the World Wide Web is a major driving force behind the development of many new and interesting applications. The lines between these two traditionally isolated worlds is blurring due to IETF-developed protocols like SIP and new programming models like JSR 289, which enable applications to simultaneously control the signaling between these two worlds. Through a sample application, this article illustrates how to develop a converged Web service using IBM WebSphere Application Server.
This is the fifth article in a five-part series on IBM's commercial solution for service-oriented systems design and development. This article illustrates how users can leverage service models to jump-start their development of service solutions. In this case, we demonstrate the generation of Service Component Architect (SCA) artifacts from a service model constructed using Rational Software Architect for WebSphere Software, Version 8.0.2.
This is the fourth article in a five-part series on how to use Rational's latest best-practices development process guidance and modeling tools to design and construct robust, flexible IT solutions based on service-oriented architectures.
This is the third article in a five-part series on how to use Rational's latest best-practices development process guidance and modeling tools to design and construct robust, flexible IT solutions based on service-oriented architectures.
This is the second article in a five-part series on IBM's commercial solution for service-oriented systems design and development. This article describes IBM's commercially available best practices ? Rational SOMA -- for identifying, specifying, and realizing services. It describes both the method ? which is tool-agnostic ? and specific guidance that is included with Rational SOMA for using Rational Software Architect for WebSphere Software to perform the steps of the method.
This is the first article in a five-part series on IBM's commercial solution for service-oriented systems design and development. This article begins by discussing some of the promises and issues associated with moving to a service-oriented approach for IT systems. It then provides high-level descriptions of best practices and tools for realizing the benefits and overcoming the issues.
With the introduction of SugarCRM 5.5, the entire web services framework was invigorated not only to add REST support to complement the existing SOAP support, but also to enable developers to customize the web services in an upgrade-safe way to help support their business applications with ease. Out of the box, the SugarCRM REST web service supports using JSON and serialized PHP data as data formats for interacting with these web services. In this article, you can see how easy it is to add XML as another option to send and receive data with your SugarCRM instance.
A WSDL (Web Services Description Language) binding style can be either RPC or document, but the wrapped-document/literal pattern is the one, which blends the best out of both these styles.
WS-SecurityPolicy lets you define security configurations as part of your Web Service Description Language (WSDL) service description. It's a powerful tool, but working with WS-SecurityPolicy documents can be painful. Assertions must be correctly structured to be effective, and version namespaces need to be consistent. In this article, you'll learn about common errors made in creating WS-SecurityPolicy documents, and you'll see how WS-Policy and WS-SecurityPolicy can be modeled in Java for verification and transformation.
Businesses and government agencies demand cloud services to provide better security in order to ensure continuous operational availability. To make this a reality, they need to formulate a cloud service policy on risk mitigation. Learn about cloud service security and how to mitigate risks to cloud services to ensure high uptime availability and security in a cloud environment.
This tutorial demonstrates how to develop web service with Java 2 Platform and deploying it in WebSphere Application Server Community Edition (WASCE) and Tomcat server using two simple examples (HelloWorld and Logging), then invoking them through a J2ME client. Eclipse IDE is also used to develop a web service and deploy it in the WASCE. There is also a Stock-Quote service example in a remote location (not in local host) developed in .NET platform and this tutorial will show how to invoke it using a J2ME client.
In the first installment, part 1, of this series you learned the reasons for needing advanced search capability in a services registry. In the second installment, part 2 of this series, you learned how to implement the four core components of this advanced registry. In the third installment, part 3, of this series you learned about the various practical configurations that are possible for combining these four core components either in a single application or multiple applications. In this last installment, part 4, you will learn how to handle multiple service names matches, which may occur in some rare cases.
Web services provide function specific services and are especially suited for mobile devices. KSoap2-android project is a SOAP library for the Android platform. In this article we will access a JAX-WS web service for which a WSDL is provided from an Android client. The web service returns a Hello message in response to a request containing a name. We shall create a web service client for Android using the Eclipse ADT plugin and the KSoap2-android library. We will test the web service client in an AVD (Android Virtual Device). The response from sending a request to a Hello web service with name as the request argument is output on an Android virtual device emulator.
EXPath is a community-driven effort whose goal is to define common extensions for XML technologies, making it easier for developers to create portable applications using well-defined function libraries. The EXPath HTTP Client module defines a set of functions that enable the sending of HTTP and HTTPS requests. Learn to use this library to interact with HTTP from both XSLT and XQuery, and find out how to test HTTP requests using a primitive HTTP tester utility built with XQuery and the EXPath HTTP Client module.
Cloud billing is the process of generating bills from the resource usage data using a set of predefined billing policies. The author defines a cloud billing service module enabled for a service oriented architecture, covering both functional requirements -- a quote service, conversion functions and policies, payment schemes, and user identification -- and the non-functional, but essential, requirements such as security, scalability, standards, and fault tolerance.
Several years after the approval of Web Services Description Language (WSDL) 2.0 as a World Wide Web Consortium (W3C) standard, WSDL 1.1 is still the most widely used form of web service description. Despite its popularity, WSDL 1.1 has some issues, including a variety of schemas in use and variations in how web services stacks process WSDL documents. In this article you'll learn how WSDL 1.1 service descriptions are structured. You'll also see the basic structure of a Java tool for verifying WSDL documents and transforming them into a "best practices" form.
This article details the challenges to effective application security policy automation, explains the benefits model-driven security adds to security policy automation, and then demonstrates how to achieve cloud application security policy automation.
This article describes a very simple login technique implemented by using several contemporary technologies. It brings a scripting language (Perl), a free database (MySQL) together with a lightweight text-based open standard (JSON), a cross-browser JavaScript library (jQuery) and an asynchronous interactive web application technique (Ajax).
A resource for planning, implementing, and managing Service-Oriented Architecture (SOA), with an emphasis on how SOA drives business value and enables IT processes to align with business needs and objectives.
Many businesses and government agencies demand cloud services to provide continuous operational availability and security. To make this a reality, they will require a threshold policy on resource management for application testing and production. In this article, the author explains what a threshold policy is and how it can help to balance workload demands dynamically in a cloud environment.
In this series, you'll learn how to use WebSphere Lombardi Edition V7.1 to model end-to-end business processes using a sample purchase order scenario. Part 1 provides an overview of the Lombardi features and architecture.
This article describes how to develop and access Service Component Architecture (SCA) applications using Rational Application Developer Version 8 with a sample application.
WS-Security and related standards provide a wide range of options for web service security. Of this wide range, web services stacks test only a limited number of security configurations, and even fewer configurations for interoperability, on their own. Find out what the industry has done to promote interoperability among web services stacks, and read a summary comparison of how the three main open source Java stacks handle security.
The Service Federation Management (SFM) feature pack enables enterprises to expand their SOA capabilities by federating and sharing services across domains. This article describes how to use the SFM console to perform some of the core functions that are available, for example sharing a group of services between two service domains.
Service Federation Management (SFM) feature pack enables enterprises to expand their SOA capabilities by federating and sharing services across domains. This article examines the motivation and business case for SFM, and introduces some of the concepts and terminology that are involved.
In the process of creating SOA based services from common information model, we know that there is a need to extend CIM due to its abstract nature. An important aspect to understand is that the driving context of the constellation of CIM objects pertaining to an SOA based service is its "Business intention". This article will explore such a characteristic of the relationships of CIM objects in SOA based implementations.
? ??????? IBM WebSphere Process Server V7 ???? ????? WebSphere Application Server V7? ???? ?? ? ??? ???? ????? ???? ??? ?????. ??, ???? ???? ??? ? ???? ???? ?? IBM WebSphere Integration Developer V7?? ??? ??? ??? ??, Web Services Atomic Transaction? ???? ?? WebSphere Process Server? WebSphere Application Server? ???? ??? ?????. ??? ??? ????? ???? ???? ?? ????? ?????? ? ????? ??????.
This tutorial provides instructions to implement a transaction between an IBM WebSphere Process Server V7 business process and an external web service running WebSphere Application Server V7. The tutorial will provide steps to be carried out in IBM WebSphere Integration Developer V7 while developing the business process module and the web service, followed by instructions to configure WebSphere Process Server and WebSphere Application Server to enable Web Services Atomic Transaction. The latter part demonstrates the transaction commit and rollback scenarios to complete the tutorial.
This article describes different tracking, logging, and fault handling features in mediation modules created with WebSphere Integration Developer V7. The runtime capabilities apply equally to mediations running in WebSphere Enterprise Service Bus and WebSphere Process Server.
The competitive nature of today's business demands that an organization's business processes be highly dynamic. A business must accommodate and manage fast-changing business rules associated with business processes. A business rules management system (BRMS) enables you to extract business rules and decisions from business processes and manage them independently, thereby allowing the processes to be streamlined. This article describes how to integrate IBM(R) WebSphere(R) ILOG(R) JRules, an industry-leading BRMS, with IBM FileNet(R) P8 BPM, a comprehensive business process management system (BPMS). [The November 2010 update includes the following changes: the term expert system was changed to decision service; business rules conditional checking 1 equals 1 was removed; the PI prefix to verbalization was removed; the rules are better organized in in the rule packages; and the rule flow was updated based on the new package design. --Ed]
The objective of this tutorial is to demonstrate how to create and invoke a web service using Apache Axis2 by hosting a simple web service using Axis2 and invoking the web service over HTTP using Axis2.
This article is the second part of a series of articles. The first article focused on augmenting CICS(R) Web services with two general purpose routines (pipeline handlers) that support two scenarios to store and retrieve XML in DB2(R) pureXML. This second part introduces two more scenarios: a service request scenario and a service response scenario. The service request scenario shows how a custom pipeline handler can be introduced to further enhance CICS Web services to store XML data in relational form or in XML form after extracting the XML that represents the business data from the SOAP message. The service response scenario shows how a custom pipeline handler can be introduced to publish relational data as XML, and how XML data can be modified directly through SQL before returning the data in a service response. This article also illustrates how stored XML data can be accessed as relational data through a view for easy placement in a CICS COMMAREA or container. Some sample COBOL source code is included in the Downloads section.
WS-Policy provides a general structure for configuring features and options that apply to a web service. You've seen it used for WS-Security configurations in this series, and perhaps elsewhere for other extension technologies such as WS-ReliableMessaging. In this article, you'll learn about the structure of WS-Policy documents and the ways you can attach policies to services in Web Service Description Language (WSDL), with security-configuration examples tried on Apache Axis2, Metro, and Apache CXF.
Enterprises of all sizes have needs to tap into experts within the enterprise to solve a business problem, or assist with a Sales opportunity or help answer a simple question. In this article, learn how SOA patterns are applied to derive a reference architecture for enterprise expertise location. In part 2 of the article, solution architecture, data model and key architectural decisions will be discussed.
In the first installment, part 1, of this series you learned the reasons for needing advanced search capability in a services registry. In the second installment, part 2 of this series, you learned how to implement the four core components of this advanced registry. In this installment, part 3 of this series you will learn the various practical configurations that are possible for combining these four core components either in a single application or multiple applications. You will also learn about a fifth auxiliary component, called controller, which is required for some configurations. In the next installment you will learn how to handle the case of multiple matches in advanced registry.
The Workflow Patterns Initiative is widely used or referenced when enterprises want to model their workflow. Its latest 43 workflow patterns post a big challenge to all kinds of BPEL engines. WebSphere Process Server (WPS) is a powerful business process automation engine with high performance. Customers can implement their workflow patterns easily with WPS and WebSphere Integrated Developer (WID). This article highlights the latest WID v7.0 and WPS v7.0 can not only implement all 43 patterns, but also how to implement them easily.
Web services play a key role in SOA business solutions but web service SOAP calls can be expensive to influence the performance. If the data of web services does not change frequently, properly caching could boost the performance. This article shows you how to use dynamic cache in a declarative way to cache the results of web service calls in WebSphere Process Server.
The Workflow Patterns Initiative is widely used or referenced when enterprises want to model their workflow. Its latest 43 workflow patterns post a big challenge to all kinds of BPEL engines. WebSphere Process Server (WPS) is a powerful business process automation engine with high performance. Customers can implement their workflow patterns easily with WPS and WebSphere Integrated Developer (WID). This article highlights the latest WID v7.0 and WPS v7.0 can not only implement all 43 patterns, but also how to implement them easily.
The Workflow Patterns Initiative is widely used or referenced when enterprises want to model their workflow. Its latest 43 workflow patterns post a big challenge to all kinds of BPEL engines. WebSphere Process Server (WPS) is a powerful business process automation engine with high performance. Customers can implement their workflow patterns easily with WPS and WebSphere Integrated Developer (WID). This article highlights the latest WID v7.0 and WPS v7.0 can not only implement all 43 patterns, but also how to implement them easily.
The Workflow Patterns Initiative is widely used or referenced when enterprises want to model their workflow. This four-part article series will discuss how to implement advanced workflow patterns in WebSphere Integration Developer and WebSphere Process Server.
In this article we will propose a model where a social network will be specialized for a particular line of services, Social Networks as a Service (SNaaS). It will describe how we can leverage a particular service from multiple social networks. It will also touch upon the technologies which are helping Social Networks leverage the power of the internet, Web 2.0 being one of them. It will conclude with an outline on the future of service providing social networks and the advantages and challenges of such an operational model.
Since its introduction, web service has become a standard mechanism for integration between applications. However, there are many applications written in languages that do not provide a strong support for web service - for example Visual C++ V6.0 or Visual Basic V6.0. One approach to enable these applications is to have an adaptor that can convert a request into a web service call. This tutorial describes how to develop this adaptor implemented as a DCOM server using C#. It basically receives a COM request and forward the request to a web service endpoint. It also provides steps on how to make a COM request in C++ and shows steps on how to implement a Java web service. In short, it demonstrates how web service interoperability on the .NET and JEE platform can be achieved. C# code is developed using Microsoft Visual Studio, while the web services is developed using Rational Application Developer V7.5 and deployed on the WebSphere Application Server V7.0 test environment.
Selecting package applications is not just a matter of validating the functional match. There are important non-functional forces to conquer in order to meet the business ambition, e.g. business agility and time-to-market of the solution. However, the needs in the non-functional space are often hard to articulate. This article provides for a thinking framework to devise the criteria for package selection covering the non-functional business need as well.
Confused by how event processing works in WebSphere Business Monitor? Just what are filter expressions, correlation predicates, and monitoring contexts, and how do they cooperate to ensure that the right events update the correct metrics, so that your business can react quickly? In this article, Joachim Frank peels back the curtain to show you what's going on behind the scenes and how it all comes together to ensure your business gets the information it needs, where and when it needs it.
Service-oriented architecture and the SOA programming model hold the promise of realizing true agility and alignment of IT to the business. But what does it really take to develop true service oriented software? this article will explore the experiences of a small team of architects and developers building an SOA application from the ground up, based on a business process modeled in WebSphere Business Modeler. In this article we describe the design and development process, including considerations for service oriented design and data modeling. We will take a deeper look at one business process implemented in the project, and discuss the techniques for developing the process in BPEL and the service components in SCA using the WebSphere Integration Developer.
This article will discuss how to test web service modules with test case support in WebSphere Integration Developer. It also explains how to use Java expressions to reference a field in another test variable in their test cases.
This part of the series focuses on the model and integration development aspect of the project life cycle and how to set up an environment for Business Analysts and Information Technology developers to compose and verify Lotus forms. The step-by-step instructions on installation and configuration of the development and testing tools are provided for three use case scenarios that represent the most common patterns for what our customers do when they start with a new installation of our BPM products.
Companies today are faced with a number of challenges in operational efficiency. In particular there are many business processes within a given organization that are unnecessarily cumbersome due to the lack of a coordinated effort. These processes are often manual in nature and prone to error. Developing a series of well orchestrated business processes that include a combination of human tasks and automated services will differentiate a company from its competitors by streamlining operations and reducing waste.
Lotus Webform Server has been chosen as one of the standard form user interface technologies. This article will explain how to integrate the Webform Server with the BPM stack.
This article explains a way to produce multiple representations using HttpMessageConverter, and examples in the article show how to use RestTemplate with HttpMessageConverter to communicate with services.
In Part 1, you learned how to provide message-level security using JAX-WS on WebSphere Application Server V7. In Part 2, you used the Username Token for JEE programmatic authorization decisions. In Part 3, you'll learn how to develop a JAX-WS client that can consume a secure service running on WebSphere Application Server V7 using the Web Services Security (WSS) APIs.
As many architects can attest, there are a lot of scary stories that exist in the pursuit of target solution architectures. Sometimes, these situations occur due to lack of experience, but they also occur as a result of not applying a sound architectural perspective to a given situation. This article looks at a number of actual scenarios and their associated resolutions in the hope of preventing similar misadventures.
SOA (service-oriented architecture) based architectural styles gets complex when combined with Common information model (CIM). This is because in reality the designer needs to extend the CIM for various reasons spanning the spectrum of including additional data elements for integration reasons to including elements required for carrying out business logics by the Service component. When the impact of such extensions on the core CIM is understood, it becomes easy to manage. Aspects related to the core CIM, extended CIM are discussed in this paper. In this article we explore the characteristics of each layer and the significance of maintaining them separately.
The MQ Telemetry Transport (MQTT) protocol is a lightweight publish/subscribe protocol flowing over TCP/IP for remote sensors and control devices through low bandwidth, unreliable or intermittent communications. This protocol specification has not been standardized. It is made available here under a royalty free license.
WS-Security symmetric encryption lets you secure message exchanges between client and server without requiring client certificates, simplifying your web service configuration while also providing performance benefits. You can use it directly or in the bootstrap for WS-SecureConversation exchanges. In this article, you'll learn how to configure and use symmetric encryption with the three main open source Java web services stacks: Axis2, Metro, and CXF. You'll also see how plain WS-Security symmetric encryption performance compares to WS-SecureConversation performance.
Information protection is one of the common entry points for organizations getting started with information governance. Protecting sensitive data serves a clear business need, and protecting data is the goal of many current regulations. In 2008, the average cost of a data breach to an organization was $6.5M - and these only represent the ones that were found. Most of these breaches were internal.
Information protection is one of the common entry points for organizations getting started with information governance. Protecting sensitive data serves a clear business need, and protecting data is the goal of many current regulations. In this 2 part series we will start looking at the protection of data in this article by looking at the security of IBM Data Servers on z/OS. This will be followed by part 2 looking at audit and compliance.
This article discusses the business operations and processes of Resource and Capacity Management (RCM) that helps to be transform IT systems. This methodology helps to modify and integrate the current assets and tools in realizing end-to-end automated business processes using an SOA. We looked at the enterprise view of the RCM center, build the business component models, identify the hot components and develop an SOA solution layered enterprise architectural model. The business services are identified and transformed into candidate IT services by applying SOMA service identification and analysis technique. This case study also provides example of IBM'S CBM-SOMA methodology, IBM SOA solution in modernizing existing RCM IT systems and its business operations.
In the Java world, you can build a RESTful web service in several ways: Some folks use JSR 311(JAX-RS) and its reference implementation Jersey, others use the Restlet framework, and some might even implement from scratch. Spring, the well-known framework for building Java EE applications, now supports REST in its MVC layer. This article introduces the "Spring way" to build RESTful web services. Learn how to use Spring APIs and annotations to build RESTful web services, and see how Spring integrates this new feature seamlessly into its original framework.
Continuing from part 1 of this article series, which showed how to use WSS4J and AXIS2 API to send WS-Signed and WS-Encrypted SOAP messages. This article will focus on how to send Message Transmission Optimization Mechanism (MTOM)/XML-binary Optimized Packaging (XOP) enabled WS-Signed /WS-Encrypted SOAP messages using WSS4J/AXIS2 API.
JRules allows decision services to be exposed as web service without any coding. Exposing the business decision services as web services combine business rules' agility with SOA's flexibility. It facilitates an easy integration with other SOA-enabled products.
WS-SecureConversation lets you secure ongoing web service message exchanges with less processing overhead than plain WS-Security. In this article, you'll learn how to configure and use WS-SecureConversation with the three main open source Java web services stacks: Apache Axis2, Metro, and Apache CXF. You'll also see how the three stacks compare on WS-SecureConversation performance.
REST-based Web services are increasingly being preferred for integration with backend enterprise services compared to SOAP due to their simplicity. This article proposes a simple extensible framework for exposing Java business services as REST-like services. It also helps to describe the design in detail and explores various extensibility approaches.
For years, the Java zone has brought you top-quality technical content by some of the best minds in the industry. But taking the time to read an in-depth, code-heavy article can be difficult, even if it's about a topic that's critical to your day job. This podcast series, led by the engaging and technically curious Andrew Glover, provides a new way to get information from the sources you trust most. Every few weeks, we'll publish a new discussion with an expert on the topics that are important to your job.
The Gang of Four's Interpreter design pattern encourages extending a language by building a new language from it. Most functional languages let you extend the language in a variety of ways, such as operator overloading and pattern matching. Although Java doesn't permit any of these techniques, next-generation JVM languages do, with varying implementation details. In this article, Neal Ford investigates how Groovy, Scala, and Clojure realize the intent of the Interpreter design pattern by allowing functional extensions in ways that Java does not.
Traditionally, DB2 for IBM DB2® catalog views have only provided metadata about existing database objects. A new set of catalog views also provide information about your IBM i system environment. Specifically, these view make it easy to access information about the Group PTFs and TCP/IP network connections related to your DB2 for i database.
The JVM's ability to execute machine- and language-independent bytecode opens a world of problem-solving possibilities to polyglot programmers. Languages for the Java platform are proliferating rapidly (with more than 200 now available), and several have captured significant developer mindshare. This knowledge path is an overview of some of the robust languages that can complement your Java programming skills by taking full advantage of the Java platform.
Protect your business data on AIX systems using immutability and appendOnly features supported by IBM General Parallel File System V3.4 ensuring compliance to various government regulations. Having rich set of command line interfaces, GPFS allows you to set appropriate restrictions to your business audit files, health center records and log files in order to effectively secure them from being tampered or accidentally deleted. This article illustrates how to make use of immutability and appendOnly restrictions offered by IBM GPFS V3.4 to protect your AIX data.
Select the most suitable MapReduce implementation for large scale data analysis jobs based on your skills, preferences, and requirements. MapReduce is a simple and powerful programming model that enables the easy development of scalable parallel applications to process vast amounts of data on large clusters of commodity machines. It isolates the application from the details of running a distributed program. But many programmers are unfamiliar with the MapReduce programming style and prefer to use a SQL-like language to perform their tasks. In this article, read an overview of high-level languages and systems designed to tackle these problems and add declarative interfaces on top of the MapReduce framework.
In the IBM PureApplication System environment, a virtual application pattern is the critical element that allows a user to rapidly set up and manage cloud application infrastructure; a virtual application pattern describes an application, and employs the tools to build the appropriate infrastructure for the application and then deploys the application to that infrastructure. IBM PureApplication System virtual application patterns are the captured essence of years of application-infrastructure-deployment experience and best practices. Virtual application patterns encapsulate optimized solutions of multiple middleware elements to host specific types of application workloads. In this article, the authors introduce you to virtual application patterns and their place in the ecosystem, describe their components and functions, and provide a basic look at how to create and use a virtual application pattern.
In the IBM PureApplication System environment, a virtual system pattern is the critical element that allows a user to rapidly set up and manage the cloud middleware topology; a virtual system pattern describes a middleware topology and employs the tools to automatically build that topology in the cloud. IBM PureApplication System virtual system patterns are the captured essence of years of infrastructure-management experience and best practices. Virtual system patterns encapsulate repeatable topology definitions based on various middleware images and runtime configurations; they give you control over the middleware landscape being deployed. In this article, the authors introduce you to virtual system patterns and their place in the ecosystem, describe their components and functions, and provide a basic look at how to create and use a virtual system pattern.
Spring Roo Advanced add-ons provide the mechanisms to add Java code in applications (for example, building an add-on that can write equals and hashcode methods for your domain object). With the addon create command, you can create a template of an advanced add-on. You then can extend the template to meet developer requirements. This article walks through the steps to create an advanced add-on.
In Part 1 of this series, we looked at building a CRUD-based application in minutes with Roo. Here in Part 2, we will extend that application to a full-fledged enterprise application by adding features such as Spring security, email support, and many others.
Spring Roo is a lightweight productivity tool for Java technology that makes it fast and easy to develop Spring-based applications. Applications created using Spring Roo follow Spring best practices and are based on standards such as JPA, Bean Validation (JSR-303), and Dependency Injection (JSR-330). Roo offers a usable, context-aware, tab completing shell for building applications. Spring Roo is extensible and allows add-ons, enhancing its capability. This article introduces Spring Roo and provides step-by-step instructions on building Spring Roo source on Windows and *nix systems.
Take the rapid development of Roo a step further by creating applications to work in the cloud with Cloud Foundry, the first open platform as a service project created by VMWare. Learn more about the environment and then deploy an application into Cloud Foundry using the Roo shell.
Design patterns represent just one way to solve problems, but if you primarily use object-oriented languages, you may come to think in design patterns. In this installment of Functional thinking, Neal Ford illustrates solutions to a common problem -- incompatible interfaces -- using traditional design patterns, metaprogramming, and functional composition. Each approach has pros and cons, but thinking about the design of the solutions helps you see problems in new ways.
Traditional MVS datasets are not directly accessible from WebSphere Message Broker. This article shows you how to read them using Java for z/OS (JZOS) libraries with WebSphere Message Broker. Using a Java class to read records from a dataset provides much more flexibility in post-processing, enabling you to modify the records in many different ways.
The Java Native Interface (JNI) is a programming framework that enables Java code running in a Java Virtual Machine (JVM) to call and to be called by native applications and libraries written in other languages such as C, C++ and assembly. This article describes how developers can leverage this framework to integrate their J2EE applications deployed on IBM WebSphere Application Server with these C libraries.
Contrary to popular belief, design patterns exist in functional programming -- but they sometimes differ from their object-oriented counterparts in appearance and behavior. In this installment of Functional thinking, Neal Ford looks at ways in which patterns manifest in the functional paradigm, illustrating how the solutions differ.
IBM Tivoli Service Automation Manager (TSAM) V7.2.2 introduces the extension: A set of TSAM software components that can implement a new IT service automation solution (known as a service definition) or add capabilities to existing service definitions. In this article, the authors explain how to tune the load balancer policy to your system's needs; how to add and remove application servers as the workload of the business application changes; and how to modify the firewall rules and why you might need to do that.
This article gives you insight into the memory usage of Java code, covering the memory overhead of putting an int value into an Integer object, the cost of object delegation, and the memory efficiency of the different collection types. You'll learn how to determine where inefficiencies occur in your application and how to choose the right collections to improve your code.
Master web application complexity with the functional scripting superstack of CoffeeScript, Node, and Underscore.js.
Learn about COBOL, Java (WAR), and related DB2 assets, including embedded SQL, by exploring the features of the Rational Asset Analyzer browser user interface.
Using push notification technology, server applications can send rich content to apps installed on iOS or Android devices, saving you the trouble and expense of implementing Short Message Service (SMS) or Multimedia Messaging Service (MMS) in your mobile-messaging apps. Michael Yuan shows how to support this key feature in your iOS applications. You'll also see how to use an open source Java library that simplifies the notification process.
Learn how to use the IBM Rational Asset Analyzer inventory wizard to analyze COBOL and Java (WAR) files, including embedded SQL, by scanning the related files from a Windows directory structure.
Java is becoming a popular programming language for CICS applications. CICS provides multiple Java environments, each with its own strengths, so passing data objects between the different CICS Java environments is an important topic. This three-part article series gives you the details. Part 3 describes the API that enables CICS TG Java client programs to interact with a CICS TS program. It also provides an object transporter that you can use in a CICS TG Java client along with the wizards in Rational Application Developer to generate code to communicate from a CICS TG Java client to a CICS TS program.
Modern dynamic languages have incorporated many functional features to take mundane tasks off developers' hands. This article explores the benefits of caching at the function level with Groovy, contrasting it with an imperative approach. It illustrates two types of caching -- intramethod and external -- and discusses the advantages and disadvantages of the imperative and functional versions.
IBM Tivoli Service Automation Manager (TSAM) 7.2.2 introduces the extension, a set of TSAM software components that can implement a new IT service automation solution (known as a service definition) or add capabilities to existing service definitions. In this article, the authors define a scenario in which the desired result is to securely deploy a three-tiered enterprise application (in this case J2EE) to the cloud. They demonstrate how to set up and provision extensions in TSAM as the first step to accomplishing this task.
Data security is a serious concern for organizations considering cloud adoption, but in many cases it needn't be. In this installment of Java development 2.0, learn how to use private-key encryption and the Advanced Encryption Standard to secure sensitive application data for the cloud. You'll also get a quick tutorial on encryption strategy, which is important for maximizing the efficiency of conditional searches on distributed cloud datastores.
AuthenticRoast is an open source project that works with the Java Authentication Service Provider Interface for Containers (JSR 196) to let you develop custom authentication modules for use with container-managed, declarative security. Joe Sam Shirah shows how AuthenticRoast can minimize configuration impact on Java Enterprise Edition (JEE) containers and greatly reduce coding effort for custom security requirements. A downloadable WAR with demonstration code is provided.
Java is becoming a popular programming language for CICS applications. CICS provides multiple Java environments, each with its own strengths, so passing data objects between the different CICS Java environments is an important topic. This three-part article series gives you the details. Part 2 uses an example Java class to show you how to pass Java data objects between applications running in a CICS-pooled JVM, an Axis2-based JVM, a CICS Dynamic Scripting environment, and a CICS OSGi-based JVM.
RichFaces, like most other rich/Ajax component frameworks designed for use with JavaServer Faces (JSF), was extensively revamped for compatibility with the significant changes in JSF 2. Joe Sam Shirah examines changed and new RichFaces 4.1 components that provide the same functionality he demonstrated in "An introduction to RichFaces" with version 3.1. He also updates the setup requirements for using RichFaces with JSF.
Java is becoming a popular programming language for CICS applications. CICS provides multiple Java environments, each with its own strengths, so passing data objects between the different CICS Java environments is an important topic. This article series gives you the details. Part 1 describes the CICS Java environments, the advantages of each one, and the different ways to pass data between them. Part 2 uses an example Java class to show you how to pass Java data objects between applications running in a CICS-pooled JVM, an Axis2-based JVM, a CICS Dynamic Scripting environment, and a CICS OSGi-based JVM. Part 3 shows you how to pass Java data objects from a CICS Transaction Gateway Java client program to a CICS-pooled JVM or CICS OSGi-based JVM.
This knowledge path introduces Java development concepts and skills to programmers who are new to the language and platform. Experienced Java developers guide you from basic Java syntax to more-advanced abstractions and constructs, sharing best practices and useful resources along the way. You'll also get acquainted with the Eclipse IDE and use it for hands-on learning.
With Groovy, metaprogramming and functional programming form a potent combination. See how metaprogramming enables you to add methods to the Integer data type that take advantage of Groovy's built-in functional capabilities. And learn how to use metaprogramming to incorporate the Functional Java framework's rich set of functional features seamlessly into Groovy.
For years, the Java zone has brought you top-quality technical content by some of the best minds in the industry. But taking the time to read an in-depth, code-heavy article can be difficult, even if it's about a topic that's critical to your day job. This new podcast series, led by the engaging and technically curious Andrew Glover, provides a new way to get information from the sources you trust most. Every few weeks, we'll publish a new discussion with an expert on the topics that are important to your job.
Java applications, which store their data in files, can benefit in many ways by accessing file-systems using transactions. Learn how to work with open source XADisk for transactional file access.
Redis has a lot in common with memcached but it boasts a richer set of features. In this month's Java development 2.0, Andrew experiments with adding Redis (by way of Java-based variant Jedis) to his location-based mobile application. Learn how Redis works as a simple data store, then try repurposing it for ultra-fast, lightweight caching.
Node.js presents an exciting alternative to traditional Java concurrency, and all you need to get started is an open mind and a little bit of JavaScript.
Over time, languages and runtimes have handled more and more mundane details for us. Functional languages exemplify this trend, but modern dynamic languages have also incorporated many functional features to make developers' lives easier. This installment investigates some of the functional features already lurking in Groovy, showing how recursion hides state and how to build lazy lists.
The Java language's main benefit is the portability of Java applications across hardware platforms and operating systems. But some applications can't be written entirely in Java: The standard Java class libraries might not support a required platform-specific feature or library; you might prefer to implement time-critical code in a lower-level, faster language, or you might want to leverage legacy code assets. The Java Native Interface (JNI) within the Java platform enables Java and "native" (non-Java) code to interoperate. Using JNI entails certain trade-offs, beyond loss of application portability. This knowledge path is designed to help all Java developers use JNI safely and efficiently.
Tracking the source of Java application bottlenecks is critical to the application-development cycle. With the introduction of better profiling tools and a host of diagnostic tooling from the IBM Java team and others, the task of monitoring and diagnosing Java applications has become considerably less difficult than in the past. In this knowledge path, you'll learn more about the tools you can use to assess and improve the health of your applications effectively.
Meet Heroku, a Ruby-based PaaS that brings a winning combination of configurability and ease-of-use to Java application development and deployment in the cloud.
Learn what Node.js is and how to get started using it in this brief introduction.
Apache Mahout committer Grant Ingersoll brings you up to speed on the current version of the Mahout machine-learning library and walks through an example of how to deploy and scale some of Mahout's more popular algorithms.
Learn how to expose existing business functionality embedded in legacy applications as JAX-RS 1.1 RESTful services using WebSphere Application Server V8.0 and Rational Software Architect.
Get an overview of the foundational constructs of the JavaScript language. This demo briefly describes the basic constructs and provides examples that illustrate how they can be used.
See the different methods used to create objects using JavaScript. This demo uses each object-creation method to create a functional photo slideshow.
A recent trend has been to build a strong connection between cloud application and service development and operations; in particular, this trend is leading to a tighter, more efficient integration of application life cycle management (ALM) tools with cloud computing. In this article, the authors will show you how to use the open source Apache Maven build management tool to automate build and deployment projects on IBM SmartCloud Enterprise. They will also demonstrate how to integrate the management of virtual machines on the cloud into the build and deployment life cycle by developing an Apache Maven plug-in that looks up and creates virtual machines that run a J2EE application server on the cloud. You'll also discover best practices for development and deployment on the cloud and how to use IBM Cloud API's and Maven to implement these practices.
When a significant new feature is added to a language, it is quite common that the new feature necessitates, or at least encourages, the addition of other new features as well -- for better or worse. In this installment of Language designer's notebook, Brian Goetz discusses how language features invite their friends with them.
When extended with the downloadable IBM Integration Module, the IBM Optim pureQuery Runtime simplifies the process of generating DB2 static SQL for Hibernate and iBATIS applications. It does this without requiring changes to your application code or gathering SQL from production workloads. The Optim pureQuery Runtime also enables Hibernate and iBATIS applications that access DB2 or Informix to benefit from the heterogeneous batching feature in pureQuery. This article is part one of a four-part series about using the IBM Integration Module with Hibernate applications. This article includes a downloadable sample application that illustrates how you can easily enable static SQL and heterogeneous batch functions with Hibernate applications. The article also provides informal elapsed time performance measurements. Part 2 focuses on iBATIS applications.
Development teams that build applications using Hibernate as the Object Relational Mapper (ORM) or persistence mechanism spend significant time tuning the amount of data that Hibernate fetches from the database, and the number of SQL queries that Hibernate uses in each business use-case of the application. In this article, learn how the IBM InfoSphere Optim pureQuery auto-tuning feature for Hibernate automates the process of determining these problems and automatically fixing them without intervention. Both the application development team and DBAs benefit from the solution.
Get started implementing web services using the Java API for XML-Based Web Services (JAX-WS) ? the current Java standard for configuring web services. Learn JAX-WS concepts and then get hands-on practice creating and deploying JAX-WS web services and clients. This knowledge path is especially suited (but not limited) to Java developers who want to deploy web services on IBM WebSphere Application Server, including the free Community Edition. It's also a good starting point for preparing for IBM Certified Solution Developer - Web Services Development for WebSphere Application Server (V6.1 or V7.0) certification.
Virtually all Java developers need to work with XML, the de facto standard format for data interchange. This knowledge path is for those who want to explore tools and techniques that make querying XML data from Java code -- whether the data is inside or outside a database -- as straightforward and effective as querying relational (SQL) data.
In concurrent applications, several computations execute simultaneously -- potentially interacting with one another -- on multiple cores in the same chip, on preemptively time-shared threads on the same processor, or on physically separate processors. Java's built-in support for threading facilitates the building of multithreaded applications but also requires developers to be vigilant about concurrency issues. This knowledge path is for Java developers who want to master multithreaded programming in the Java language -- and learn about alternative approaches for the Java platform that are designed to exploit modern multicore processor hardware.
Representational state transfer (REST) is a high-level architectural style for designing loosely coupled networked applications and services that rely on named resources rather than messages. Java developers who want to implement RESTful web services are the target audience for this knowledge path.
The distributed, stateless nature of web services makes securing them a key concern. This knowledge path is intended for Java developers who need to implement message-level security in their XML-based web services applications,. It introduces the reader to OASIS Web Services Security (WS-Security) standard and shows how to use it to secure Java web services applications, using both the open source Apache Axis web services framework and IBM products. The material is especially suited (but not limited) to those who wish to deploy secure web services on IBM WebSphere Application Server, including the free Community Edition, using tooling available from IBM.
Nearly all products in the Java portal-server space have implemented the Java Portlet Specification. The specification enables interoperability among portlets and portals by defining APIs for portlets and by standardizing rules for preferences, user data, portlet requests and responses, deployment, packaging, and security. This knowledge path helps you build, test, and deploy standards-compliant portlets for open source containers and for IBM WebSphere Portal. It can also help you prepare for IBM Certified Solution Developer - WebSphere Portlet Factory 7.0 certification.
Real-time applications -- applications that must respond in a highly predictable time frame -- are essential in financial services, telecommunications, manufacturing, defense, and other industries. This knowledge path is designed for experienced developers who need to build Java solutions that meet real-time requirements. Learn about the real-time Java extensions to the Java platform and how to exploit them via IBM WebSphere Real Time, a standards-compliant Java runtime and SDK.
The RDBMS model is a rock-solid foundation for storing data in traditional client-server architectures, but it doesn't scale to multiple nodes easily or cheaply. In the era of highly scalable web applications like Facebook and Twitter, schemaless datastores -- NoSQL -- provide a solution. This knowledge path introduces Java developers to NoSQL technology and the role of Apache Hadoop MapReduce in big data analysis.
Learn how to configure IBM Rational Application Developer and WebSphere Application Server to profile your remote WebSphere application. This article provides steps for setting up either Java profiling or the J2EE Request Profiler.
Programmers accustomed to using the building blocks of object orientation (inheritance, polymorphism, and so on) can become blind both to its shortcomings and to alternatives. Functional programming uses different building blocks to achieve reuse, based on more general-purpose concepts like list transformations and portable code. This installment of Functional thinking compares coupling via inheritance with composition as reuse mechanisms, and pinpoints one of the key differences between imperative and functional programming.
Users don't want to see something on your application that says, "Optimized for XYZ browser." They just want it to work. Learn how efficient unit testing of your JavaScript can make it easier for you to support more browsers.
The Visitor pattern is commonly used to traverse and manipulate tree data in Java and other object-oriented programs. Now let's see what happens when Alex Miller rewrites the pattern using Clojure's functional zippers.
Amazon EC2 offers bare-bones computing power for pennies. In this demo, Andrew Glover introduces EC2's generic infrastructure service and demonstrates how to get started.
Learn how to use Ruboto, a framework that leverages the power of JRuby, to quickly build and deploy Android applications.
Working every day in a particular abstraction (such as object orientation) makes it hard to see when that abstraction is leading you to a solution that isn't the best alternative. This article is the first of two that explores some implications of object-oriented thinking for code reuse, comparing them to more-functional alternatives such as composition.
This tutorial presents a real-world example that integrates IBM Informix and ZK, a rich Internet application (RIA) framework. Informix is a flagship IBM RDBMS product, while ZK is a Java-based web application framework supporting Ajax applications. This event-driven framework enables creation of rich user interfaces with minimal knowledge and use of JavaScript. ZK's unique server-centric approach enables synchronization of components and events across the client and server via the core engine.
This tutorial highlights best practices when marking information to resources using markers, and then introduces annotations and decorators that you use to highlight markers within the workbench. By extending extension points, you can reuse and adapt the built-in functions in Eclipse and perform advanced resource marking, such as moving a text marker when editing text. We discuss methods that take advantage of the plugin model, which allows for an efficient, high performance, and integrated look and feel plugin.
Gretty is one of a new school of ultra-lightweight frameworks made for building web services. Built on top of the blazingly fast Java NIO APIs, Gretty leverages Groovy as a domain-specific language for web endpoints and Grape's Maven-style dependency management. In this article, get started with using Gretty to build and deploy Java web service applications.
Mashups4JFS is a tool that helps you easily create mashup programs in the JSF world. We continue our exploration with a look at creating RSS feeds for your application.
Immutability is one of the building blocks of functional programming. This Functional thinking installment discusses the many aspects of immutability in the Java language and shows how to create immutable Java classes in both traditional and newer styles. It also shows two ways to create immutable classes in Groovy, removing much of the pain of the Java implementation. Finally, you'll learn when this abstraction is appropriate.
Amazon RDS, part of Amazon's growing PaaS family, lets you increase your application's relational data storage capacity with just a few clicks.
While some proposed language features are simply a solution in search of a problem, most have their roots in real-world situations in which the existing features do not enable programmers to express what they want to say as easily, clearly, succinctly, or safely as they'd like. Although having a use case in mind -- "this feature enables me to write this code that I want to be able to write" -- is good, language designers also need to evaluate language features in light of the bad code they might also enable.
For years, the Java zone has brought you top-quality technical content by some of the best minds in the industry. But taking the time to read an in-depth, code-heavy article can be difficult, even if it's about a topic that's critical to your day job. This new podcast series, led by the engaging and technically curious Andrew Glover, provides a new way to get information from the sources you trust most. Every few weeks, we'll publish a new discussion with an expert on the topics that are important to your job.
Using a new global property, you can now trap JVM exit or System.exit() upon completion of SQLJ tools like db2sqljcustomize and db2sqljbind, using the DB2 Universal JDBC Driver. This article explains the JDBC Universal Driver global property db2.jcc.sqljToolsExitJVMOnCompletion and shows how to use it. A sample Java application illustrates how to set the new property.
Your Java code may be vulnerable to an exploit based on finalization. Learn how the exploit works and how to modify your code to prevent such an attack.
Functional thinking series author Neal Ford continues his guided tour of functional programming constructs and paradigms. You'll look at number-classification code in Scala and take a glance at unit testing in the functional world. Then you'll learn about partial application and currying -- two functional approaches that facilitate code reuse -- and see how recursion fits into the functional way of thinking.
With ever growing importance for data quality in growth markets, there is an immediate need to cleanse dirty, unstructured data. However one of the challenges during this exercise is that countries can have multiple languages that create a challenge for effectively handling linguistic data. For example, in India, the official language of each state is different and data is available in both English and local languages, which compounds the problem of data consistency. This article describes how to bring about consistency during the transliteration process, and to use IBM InfoSphere Information Server DataStage to prepare linguistic data as part of an extract, then transform and load an(ETL) scenario.
Learn how SimpleDB works, understand its advantages and disadvantages, and see how to create a record, query data, and delete data.
This two-part article shows how to build a business process management (BPM) application that collects, displays, and uses data from a social-networking site. Part 1 shows how application connects to the Twitter web service and enables users to do a keyword search for relevant tweets. In Part 2, you'll finish configuring the application and interface it with a customer relationship management (CRM) system to put the search data to practical business use.
MongoDB is a popular, open source, document-oriented database. This demo describes MongoDB, how it works, and where it's most applicable in your work.
Functional languages and frameworks let the runtime control mundane coding details such as iteration, concurrency, and state. But that doesn't mean you can't take back control when you need to. One important aspect of thinking functionally is knowing how much control you want to give up, and when.
Thanks to the flexibility of business process management (BPM) tools, you can integrate social networks into a company's business processes with minimal coding. This two-part article shows how an application built with Bonita Open Solution -- an open source BPM tool -- collects, displays, and uses data from social-networking sites. Part 1 shows how to configure the application to connect to the Twitter web service and enable users to do a keyword search for relevant data. In Part 2, you'll see how the application interfaces with a customer relationship management (CRM) system.
In this article, the authors outline the basic characteristics of cloud applications and Java Enterprise Edition applications, compare their similarities and contrast their differences, and then define a set of strategies and provide patterns to extend Java EE container and application with such cloud characteristics as parallelism, elasticity, multi-tenancy, and security.
Functional programming has generated a recent surge of interest with claims of fewer bugs and greater productivity. But many developers have tried and failed to understand what makes functional languages compelling for some types of jobs. Learning the syntax of a new language is easy, but learning to think in a different way is hard. In the first installment of his Functional thinking column series, Neal Ford introduces some functional programming concepts and discusses how to use them in both Java and Groovy.
Java developers have historically perceived JavaScript as a toy language, both too lightweight for real programming and too clunky to be of use as a scripting alternative. And yet JavaScript is still around, and it's the basis of exciting web technologies like GWT and Node.js. In this installment of Java development 2.0, Andrew Glover explains why JavaScript is an important tool for the modern Java developer. He then gets you started with the syntax you need to build first-class applications for today's web, including JavaScript variables, types, functions, and classes.
WS-SecurityPolicy lets you define security configurations as part of your Web Service Description Language (WSDL) service description. It's a powerful tool, but working with WS-SecurityPolicy documents can be painful. Assertions must be correctly structured to be effective, and version namespaces need to be consistent. In this article, you'll learn about common errors made in creating WS-SecurityPolicy documents, and you'll see how WS-Policy and WS-SecurityPolicy can be modeled in Java for verification and transformation.
The IBM WebSphere Application Server 7.0 Feature Pack for XML 1.0.0.9 Technology Preview offers some major new features, including support for XQuery modules, embedded extension functions, and source location information for runtime errors. These features help developers manage and work with queries and stylesheets, thus improving developer efficiency and reducing maintenance costs.
This article compares three major Platform as a Service (PaaS) offerings for Java developers: Google App Engine for Java, Amazon Elastic Beanstalk, and CloudBees RUN@Cloud. It analyzes each service's unique technical approach, strengths, and weaknesses, and also discusses common workarounds. Learn the basic concepts underlying Java PaaS and understand how to choose a service that suits your development needs.
The Apache OpenJPA project is an open-source implementation of the Java Persistence API, focused on building a robust, high performance, scalable implementation of the JPA specifications. This article introduces OpenJPA with a complete example of how to take advantage of some of these features using IBM WebSphere Application Server V6.1. Updated for JPA 2.0.
Amazon Simple Queue Service (SQS) borrows what it needs from message-oriented middleware (MOM) but doesn't lock you in to any one implementation language or framework. Learn how to use Amazon SQS to alleviate the burden of installing and maintaining a message-queuing system, while leveraging the pay-as-you-go scalability of AWS.
Memory Analyzer is a powerful tool for diagnosing memory leaks and footprint problems from the dump of a Java process. It can also give you detailed insight into your Java code and enable you to debug some tricky problems from just one dump, without needing to insert diagnostic code. In this article, you'll learn how to generate dumps and use them to examine the state of your application.
OpenJPA is an Apache persistence project. One elegant feature of OpenJPA lets you speed up your lookups and reduce the load on back-end databases with a Java Cache with NO application code changes! This article will show you how to install, configure, and experiment with IBM WebSphere eXtreme Scale (XS) product in conjunction with OpenJPA. You can experiment with this without spending any cash, as the XS cache is available for free evaluation.
Alex Ruiz introduces Project Lombok in this article, discussing some of the programming sugar that makes it unique, including annotation-driven code generation and clean, compact, and readable code. He then draws your attention to one of the more rewarding uses of Lombok: extending it with custom AST (Abstract Syntax Tree) transformations. Extending Lombok will enable you to generate your own project- or domain-specific boilerplate code, but it does require a fair amount of work. Alex concludes with his tips for easing through key stages of the process, along with a freely usable custom extension for JavaBeans.
This article shows how to access the CouchDB APIs using Clojure, a dynamic language for the JVM. Examples use the Clutch API and clj-http library in parallel to illustrate a higher-level CouchDB API and lower-level REST-based calls, respectively. The article will help the novice Clojure developer who wants to use CouchDB, and anyone interested in CouchDB's underlying REST APIs.
For those who want more control over their environment but like the plug-and-play scalability of PaaS, Beanstalk could be a good and welcome alternative to Google App Engine. Andrew Glover's guided tour of Beanstalk starts with a location-based mobile application (built using the Play framework and MongoDB), which he then ports to the Beanstalk environment. Configuring Beanstalk is both easy and rewarding, he finds, with choice and flexibility over and above what's offered by GAE.
The image parameters of an IBM Cloud image can be retrieved through a URL called "manifest" that is provided by the image description. The URL returns an XML response. In this article, the author explains how to transform that XML response into a Java-usable response by creating Plain Old Java Objects (POJOs) and calling JAXB's unmarshal method -- once you have this response, it will be easy for you to send requests to create new instances based on images that request parameters from Java classes.
Several years after the approval of Web Services Description Language (WSDL) 2.0 as a World Wide Web Consortium (W3C) standard, WSDL 1.1 is still the most widely used form of web service description. Despite its popularity, WSDL 1.1 has some issues, including a variety of schemas in use and variations in how web services stacks process WSDL documents. In this article you'll learn how WSDL 1.1 service descriptions are structured. You'll also see the basic structure of a Java tool for verifying WSDL documents and transforming them into a "best practices" form.
JEST unites two architectural styles -- Representational State Transfer (REST) and the Java Persistence API (JPA) -- to let language-neutral remote clients transact with JPA-based applications following REST principles. JEST models customizable persistent closures of managed entities as REST resources and represents them in XML or enhanced JavaScript Notation (JSON) format to account for the cycles in an object graph. This article explains JEST's concepts. Then it introduces a demonstration implementation: a generic web client that communicates with a server to query persistent objects and browse a persistent domain model in domain-agnostic fashion.
IBM Optim Development Studio and the pureQuery Runtime include a command-line utility called ManageRepository that can be used to create, modify, export, import, and delete pureQuery metadata that is stored in the SQL management repository. Setting up an SQL management repository can be challenging using the ManageRepository utility command script. This tutorial shows you how to create and manage an SQL repository using an Ant script. You will also learn how to run the Ant script from within IBM Optim Development Studio.
Morphia is a type-safe, object-mapping library for MongoDB, an open source document-oriented database. This article explains the benefits of mapping documents to and from objects and shows how to use Morphia for this purpose. Then it demonstrates how to persist, load, delete, and query a Java domain model mapped to MongoDB.
How can you tell when emergent design is suitable? This final installment of Evolutionary architecture and emergent design discusses the suitability of emergent design for various types of projects and how to tell when to make decisions. It concludes by recapping some of the series' key points.
This article is Part 2 of a two-part series about Riak, a highly scalable, distributed data store written in Erlang and based on Dynamo, Amazon's high availability key-value store. For websites with heavy loads, a scalable caching solution can lighten the load on the application and database servers. This particularly applies to data that is read often but updated only occasionally. Explore an in-depth example of an online betting site and how you can use Riak to implement a caching solution. You also will learn to integrate Riak with an existing website and look at other Riak features such as search and how to use it to directly serve user requests. You will need a working Riak cluster if you want to follow along with the examples. You can find the steps for setting up a cluster locally in Part 1 of this series.
The type-aware and schema-aware features of XSLT 2.0 can greatly assist you when you debug a stylesheet, and improve stylesheet quality and robustness in handling all input data. Learn how to use type-aware and schema-aware XSLT 2.0 during the debugging and testing process to avoid common issues with invalid paths, incorrect assumptions about data types, and cardinalities. Also, find examples of XSLT stylesheets that contain errors that would not be caught if schema-aware features were not in use, and discover how explicitly specifying types results in useful error messages.
Integrating multiple systems in a point to point manner can be very time consuming and expensive to maintain. One common approach to resolve this issue is to introduce an Enterprise Service Bus (ESB), which replaces the point to point approach with a single, centralized place to integrate systems, and does so in a service-oriented manner. However, if done incorrectly, this can still create maintenance headaches. Here is a look at a pattern that can ?future proof? your integration work, allowing for the upgrading or replacement of legacy systems without excessive additional integration work.
Asynchronous JavaScript + XML (Ajax) is not a web technology; it is a collection of technologies created specifically to build dynamic web applications. Because of its range of functions and ease of use, Ajax is one of the most widely used tools for building web applications today. All applications, including those built using Ajax technologies, are vulnerable to exploits that compromise websites and the databases that drive them. In this article, learn about some of the threats to Ajax technologies and how to guard against them.
Resource Description Framework (RDF) has evolved into increasingly pragmatic formats over time. RDF annotation (RDFa) has been particularly successful as a system for annotating HTML documents inline on the web. It is supported by Google and other search engines in the form of Rich Snippets. The emergence of microdata and the Schema.org initiative applied pressure to simplify RDFa even further. The W3C took action and produced a radically simplified version: RDFa 1.1 Lite. In this article, learn about RDFa Lite, and get a head start on producing and processing the shape of Rich Snippets to come.
On its own, the jQuery Mobile framework is a great solution for quickly creating an accessible, HTML5 markup-driven mobile website. When paired with CSS3, things really get interesting, as it becomes possible to create web page layouts that respond to a user's device based on the screen resolution. This article shows how to use the jQuery Mobile framework and CSS3 media queries to implement responsive design in your web pages.
Some developers may complain that JavaScript is difficult to test. With the current focus on the client side of web applications, however, unit testing JavaScript code is becoming essential. Now, you have tools to make sure your code is solid. In this article, learn about some of the most common tools for unit testing JavaScript: QUnit, YUI Test, and JSTestDriver. Code examples walk you through sample test cases.
Complex AJAX applications can interact with hundreds of different JSON services, thus introducing requirements for client-side validation. This article compares a few of the JSON Schema validation libraries. Learn how to use the libraries to validate your JSON objects. As a bonus, download a sample utility to help you write your own schemas and validate objects against them.
Dojo is an excellent library for creating Rich Internet Applications. However, complex Web 2.0 applications often require more than just one JavaScript library, and loading numerous libraries on page load can introduce performance overhead. In this article, learn how to use Dojo's dojo.io.script method for asynchronous, on-demand loading of JavaScript libraries. Example code helps you concisely "wrap" loading of external JavaScript libraries.
EPUB 3.0, which is the latest revision of the industry-standard XML e-book format, jumps into modern web technology by embracing HTML5 and CSS3. It retains its focus on XML-driven toolkits by requiring XHTML serialization and adding supplementary XML vocabularies, such as MathML and SVG. EPUB 3 offers a variety of options for developing advanced, digital-native publications. In this article, learn to create rich-layout pages using some new features in EPUB 3.
The article offers details and insight into features and capabilities of the Zero Resource Model for database management on the IBM WebSphere sMash platform. This peek at agile database management describes the built-in database handling and processing capabilities of WebSphere sMash, and provides code samples that can serve as a starting point for application developers.
This article illustrates an example of how to build a simple mobile user interface that interacts with a business process. The implementation of the mobile UI uses Dojo with the IBM WebSphere Application Server Feature Pack for Web 2.0 and Mobile, and the sample business process is implemented with IBM Business Process Manager V7.5. The mobile web application built here renders with a native look and feel on webkit-enabled mobile devices such as iPhone, iPad, Android, and RIM smartphones and tablets.
As the name suggests, Extensible Stylesheet Language Transformations (XSLT) can be used as a stylesheet. Like Cascading Style Sheets (CSS), XSLT helps to separate style from content. You can simplify and enrich your XHTML documents with XSLT, which relieves the XHTML document of navigation. In this article, learn how to use XSLT as stylesheets, which can be executed on the server or in every modern Internet browser. Several examples show how to start developing your own XSLT stylesheets.
Part 1 of this series showed how to use microdata with Schema.org terms so search engines can display your content better in search results. It also showed how to reuse that same microdata markup to improve the display on your own site. In this article, learn to use microdata to enable a collaborating group of site owners to easily hook up their sites and share content on a centralized site.
The microdata specification lists two reasons why you might want to use microdata: To allow generic scripts to provide services that are customized to the page or to enable content from a variety of cooperating authors to be processed by a single script in a consistent manner. In this two-part series, learn to use microdata in both of these ways, starting with generic scripts on top of microdata. In this article, you will write one snippet of HTML to give you both an interactive event map and to enable Google, Bing, and Yahoo to display your page better in search results with Rich Snippets.
Selenium is a well-known web application testing framework used for functional testing. The new version, Selenium 2, merges the best features of Selenium 1 and WebDriver (a parallel project to Selenium). In this article, learn how to make the easy transition from Selenium 1 to Selenium 2. Examples show how to use Selenium 2, how to test remotely, and how to migrate your written tests from Selenium 1 to Selenium 2.
In this article, learn about a system for making and responding to Asynchronous JavaScript and XML (Ajax) service calls in a consistent, event-based manner. The system can determine if a remote process call succeeds or fails. Discover how to standardize the result format of objects returned by Ajax service calls, provide event-based responses to Ajax calls, and centralize Ajax result handling. The system uses PHP, jQuery, and JSON technologies, and example code walks you through the construction of the system. The article wraps up with an example Ajax call that shows how the pieces of the system interact.
Master web application complexity with the functional scripting superstack of CoffeeScript, Node, and Underscore.js.
This series explores the popular CoffeeScript programming language, which is built on top of JavaScript. CoffeeScript compiles into JavaScript that is efficient and consistent with many best practices. You can run this JavaScript in a web browser or use it with technologies such as Node.js for server applications. In previous parts of this series, you learned the benefits of CoffeeScript, set up the development environment, exercised many of the features, and wrote the client-side code for a real application using CoffeeScript. In this final part of the series, it's time to write the server-side CoffeeScript.
This series explores the popular CoffeeScript programming language, which is built on top of JavaScript. CoffeeScript compiles into JavaScript that is efficient and consistent with many best practices. You can run this JavaScript in a web browser or use it with technologies such as Node.js for server applications. Part 1 of this series explained how to get started with CoffeeScript and explained the perks for developers. Part 2 described how to use CoffeeScript to solve several programming problems. This article explains how to create a complete application using CoffeeScript.
Many UI components are available in the jQuery Mobile framework. This article provides a high-level overview of each element and how you can use it in a mobile website. It touches on specific UI components, explains the reasons to use them, and provides code examples of their use in a mobile website.
This series explores the popular CoffeeScript programming language, which is built on top of JavaScript. In Part 1, you learned about the perks for developers, set up the CoffeeScript compiler, and used it to create code that was ready to run in a browser or server. In this article, wade deeper into the CoffeeScript language. Use CoffeeScript to solve several programming problems, with a mathematical flavor to them, from Project Euler. Example source code is provided.
With a rapidly growing mobile Web, if you haven't already started working on a PHP-driven mobile site or application, you soon will be. Detecting the capability of one mobile device among the thousands of offerings is nearly impossible with PHP alone. But with the Wireless Universal Resource FiLe (WURFL), this once daunting task becomes as simple as a few API calls to retrieve the device data you need and can use with your PHP site or application.
Scalable Vector Graphics (SVG) are part of the vector family of graphics. They have several benefits over their raster counterparts: JPEG, GIF, and PNG. In this article, explore the basic concepts and usage of SVG graphics in HTML5. Learn about drawing, filters, gradients, text, and adding SVG XML to web pages.
The IBM Web Content Manager software offers different solutions for delivering web content to your users . This article explains all the solutions available and why you would chose each.
This article discusses the various routing capabilities of the WebSphere proxy server, which is a feature of IBM WebSphere Application Server Network Deployment. Multiple configuration scenarios are presented, along with background information, setup instructions and tips to help you achieve success routing content using proxy server features in a secured environment.
The author debuts a framework for IBM SmartCloud Enterprise that lets you establish an automated, UI performance-measuring system that engages Fiddler, a web debugging proxy. This article explains the framework, Fiddler, the performance metrics that are captured by the system, and how they are important to UI performance measurement.
The jQuery Mobile framework is a quick and easy way to create mobile websites. However, you might not know that the framework has a decent API that you can use to extend the basic functionality. This article provides an overview of some of the most useful features in the API and gives you working code examples throughout.
Learn how to publish XML documents in HTML and PDF using the css2xslfo utility.
Efficient management of the numerous lines of JavaScript code in web applications can be a challenge. Asynchronous JavaScript and XML (Ajax) interactions heavily populate pages to provide a better experience to the user. Single page interfaces, which are becoming more common, are driven by Ajax. Backbone is a JavaScript framework that can be used to create model-view-controller (MVC)-like applications and single page interfaces. In this article, learn how useful Backbone can be for creating Ajax applications or single page interfaces.
Dojo Mobile is a Dojo-based widget set for creating mobile web applications. With Dojo Mobile, you can develop lightweight, high-performance mobile web applications. In this article, learn how Dojo Mobile addresses the performance issues, and how you can optimize Dojo Mobile-based user applications to make them as small and efficient as possible. [Several clarifications have been made in the text to better reflect the author's original intent.]
Virtualization and cloud computing make it very easy to create new virtual images, but as image catalogs grow, finding and locating the right images gets harder. New images are created because it is easier to create a new image than it is to figure out what existing image might be reusable, creating "image sprawl." Unless you address how to more effectively build and manage your virtual images, you will not realize the full benefits of the cloud. Two new IBM capabilities, the Virtual Image Library and the Image Construction and Composition Tool, can help you quickly understand the content of your images and build reusable, parameterized images.
Resource Description Framework (RDF) is the standard framework for the Semantic Web and a recommended framework for the Linked Data movement. This article details the most recent updates to and implications of the RDF concept specification. It also covers some new ontology specifications such as data cataloging vocabularies and RDF database mapping systems.
There's a lot of hype and fuss about CoffeeScript, a new programming language built on top of JavaScript. CoffeeScript offers a clean syntax that should appeal to those who like Python or Ruby. It also provides many functional programming features inspired by languages such as Haskell and Lisp. CoffeeScript compiles into efficient JavaScript, and in addition to running the JavaScript in a web browser, you can use it with technologies such as Node.js for server applications. In this first article of a four-part series, get started with CoffeeScript and learn about the perks for developers. You will set up the CoffeeScript compiler and use it to create code that's ready to run in a browser or server.
Learn to build an iOS slideshow application as you walk through the process step-by-step in this article. The example application will communicate with a web server to retrieve an XML slideshow definition and display the images contained in the slideshow.
Node.js presents an exciting alternative to traditional Java concurrency, and all you need to get started is an open mind and a little bit of JavaScript.
Apache Wink is a framework for building RESTful web services. In this article, see how to use Wink and OpenJPA (Java Persistence Architecture) to implement, store, retrieve, and update a resource. Also, learn to make resources persistent using OpenJPA. Article examples show how the CRUD (create, retrieve, update, and delete) operations can be completed end to end using Wink and OpenJPA.
The high adoption rate of smartphones and tablet devices is ultimately increasing the demand for mobile web developers and designers. The jQuery Mobile framework lets you create mobile web experiences that rival the results of native application development by providing instant access to applications and websites via the web browser rather than making users download and install mobile applications. Learn how to use the jQuery Mobile theming framework to create custom-branded mobile websites and web applications.
With Google, Yahoo, and Bing's announcement of schema.org, microdata is quickly gaining ground as a way to create applications that rely on data from many different websites. In this article, learn how to use Drupal to add microdata to your pages. Easily make your content available for use in applications such as Google's Rich Snippets.
This article presents some notable OSGi framework concepts that are relevant when developing OSGi platform solutions for IBM WebSphere Application Server V8 using the IBM Rational Application Developer V8.0.3 workbench. An example application explains the concepts and lays a brief but concrete foundation for understanding these concepts so that you can apply them in your own environment.
Not only are the lastest IBM WebSphere DataPower SOA Appliances new on the inside and out, but they are evidence of IBM's leadership, innovation, and long term strategic plan for appliances. Here's a high level look at the new line of hardware appliance products, including those designed for caching, integration, and cloud computing.
The act of building a smarter city has parallels with the act of helping a company succeed and grow. A central view of operations and the analysis of operational data is one of those parallels. Here is a high level look at the issue of instrumenting operations from the perspective of IBM's Smarter Cities initiative, although many of the ideas and approaches could relate equally to any business environment as well.
Mobile messaging, and Short Message Service (SMS) in particular, is a crucial communication channel for reaching out to your users. Messaging is also a central part of the consumer mobile experience. However, implementing mobile messaging applications is difficult and expensive due to barriers involved with interacting with closed telco services. This article reviews the background and challenges of mobile messaging, and discusses several technical approaches to address these challenges. After reading this article, you will be ready to incorporate interactive text messaging into your own applications.
Take your knowledge of JavaScript a bit further--into the DOM. Through the exercises in this practice, learn how to use JavaScript properties to traverse the DOM, targeting nodes, changing node values, and manipulating attributes.
See the different methods used to create objects using JavaScript. This demo uses each object-creation method to create a functional photo slideshow.
Get an overview of the foundational constructs of the JavaScript language. This demo briefly describes the basic constructs and provides examples that illustrate how they can be used.
The JavaScript language includes basic constructs that are commonly used in any script you write. Get the hands-on practice you need to store and retrieve values, create logic, iterate arrays, and write functions -- all of which give you a foundation for writing custom code in JavaScript.
This knowledge path begins with a basic overview of the JavaScript language to provide a foundation for writing JavaScript code. It then covers more advanced topics such as object-oriented JavaScript and DOM modification for HTML page manipulation before covering introductory Asynchronous JavaScript + XML (Ajax) concepts and how to make Ajax requests.
There are several methods for creating objects using JavaScript. These exercises teach you how to create objects using those methods as well as how to add properties and methods.
IBM Mashup Center is a powerful tool aimed at gaining insight and sharing information by rapidly assembling and visualizing data. This article shares some of the essential "need-to-know" tips we have collected in our experience with the product. In the first article in the series, we reviewed the components of IBM Mashup Center and some terminology, and then provided you with nine practical tips on working with feeds and building Data Mashups. Whereas the previous article focused on the "data site" of a mashup, in this this article we'll cover the presentation layer of a mashup - the "Mashup Builder". This article applies to Mashup Center version 2 and version 3.
Access a JAX-RS web service with the Apache HttpClient library. Jersey, a reference implementation for JAX-RS, simplifies development of RESTful web services in the Java environment. Android is a popular smartphone and this article shows you how to create a JAX-RS client for Android. You'll create an Apache HttpClient library client to a JAX-RS web service.
Learn the basics of developing Web applications using the Dojo toolkit. This knowledge path is targeted at web developers and designers who are interested in learning how to leverage the Dojo JavaScript framework to assist them in the development of rich Internet applications (RIAs). You should be very familiar with building web pages using HTML and CSS and have, at the very least, a basic level of understanding of JavaScript. Experienced JavaScript developers who have no prior experience with Dojo will also find this knowledge path useful, although they may want to skim over some sections of the introductory content.
Since the World Wide Web emerged in the early 1990s, HTML has evolved to become a relatively powerful markup language, which, when backed up by its close partners JavaScript and CSS, can be used to create visually stunning and interactive websites and applications. HTML5 reflects the monumental changes in the way you now do business on the web and in the cloud. This knowledge path is for anyone wanting to get a foundation in HTML5.
Web security is a discipline that is commonly overlooked. It has a reputation of being attended to in a reactive manner partially because of the lack of knowledge about common risks as well as lazy programming. Get introduced to common information security terminology as well as common attacks and vulnerabilities found on websites and applications. This knowledge path is for anyone interested in learning the basics of web application security and the risks involved in running a website from development to deployment.
Develop online applications that are both thumb and user friendly for the mobile environment with PHP, XML, jQuery, jQuery mobile, and jQuery charting. In this article, build the back end and front end of a polling application that uses charting to show the results of each poll.
This article introduces both Dojo Mobile and IBM ILOG Dojo Diagrammer, and explains how you can create a diagram application for mobile devices with the Dojo Toolkit and IBM ILOG Dojo Diagrammer. In addition, you'll see how the application can add custom actions invoked by a touch gesture.
The newly announced IBM Rational Developer for System z Unit Test can dramatically enhance the way you develop, maintain, and test mainframe applications. This article explains how this solution, along with other Rational Enterprise Modernization products, can be used in a typical scenario to transform an existing mainframe "green screen" application into a smartphone interface using modern techniques.
Most businesses are interested in finding new ways to drive traffic and generate revenue from their online investments. One way to address this challenge is to use a recommendation engine, which can drive visitors to your web site to explore further offerings. These engines apply a variety of patterns and analyze user habits to offer recommendations to users, and can be helpful in presenting offerings that a user might not otherwise know about. This article explains how to integrate Apache Mahout, an open source recommendation engine, with IBM WebSphere Application Server V8.0 and IBM Rational Application Developer for WebSphere Software V8.0.3.
In this final part of this article series, learn about event-driven development. Build an example event-driven web application using the accompanying source code.
This HTML5 demo focuses on the use of the Canvas API and shows you how to paint a very simple animation.
Get an overview of HTML5 and some of the new tags, and see how CSS3 enhances the look and feel of a web site.
This demo describes the <forms>, <fieldset>, <label>, and <input> tags. It shows you how to create very elegant forms using HTML5 and CSS3.
There are many programming languages to choose from, and it's a personal choice for many--you might just pick your favorite, or you might choose the one with the best performance figures. Sometimes, however, other factors are just as important as performance. In this article, learn how to analyze the relevant factors when selecting a programming language. A few project scenarios are outlined to illustrate different variables in your myriad choices.
In this series, you'll start out by creating a simple, mobile application, and end by consuming web services from your Android device. Learn how to use Eclipse and PhoneGap to create a mobile hybrid application using only HTML and JavaScript. You'll also use Mobile Dojo to give the application that native feel. In this article, learn how to combine PhoneGap and Mobile Dojo to rapidly create a hybrid mobile application for Android that looks and behaves like a typical Android application.
Learn about Atmosphere and CometD--the best-known open source Reverse Ajax libraries for Java technology servers.
Using mobile devices to browse the web has become the rule. As users of mobile devices increase in number, there is a corresponding spike in the development rate of mobile applications and mobile-friendly websites. For the mobile app developer, the main concern becomes how to develop an app that can display on the majority of devices. In this article, see how the Dojo Toolkit can help you create widgets for your application that mimic the interfaces of the most popular mobile devices. The Dojo Toolkit provides a mechanism to create mobile web apps using Cascading Style Sheets, HTML, and JavaScript.
Learn how to use Comet and WebSockets in your web application for various web containers and APIs. Also learn about Socket.IO, an abstraction library that can be used in a web application with Reverse Ajax. Abstraction libraries, which can be used transparently, hide all of the complexity behind Comet and WebSockets.
Build the back end of a multiplayer, network-enabled tic-tac-toe game with a native Android front-end application in this article.
Learn about Dojo Mobile 1.7, the latest version of the mobile web development framework that's an extension of the Dojo toolkit. See how to download Dojo 1.7 from trunk and how to use Dojo Mobile in your applications. Explore the various widgets and components it offers, and learn how to wrap your web application up in a native application using PhoneGap.
Increasingly, Representational State Transfer (REST) has become the preferred way of communicating in today's service-oriented architecture environments. There are many services and information sources that can be addressed via a URL and accessed using HTTP. On the other hand, there is still a significant amount of information stored in relational database management systems (RDBMS) -- like DB2. Modern RDMSes provide powerful processing features for relational data (through SQL) and XML data (through SQL/XML or XQuery).
This tutorial presents a real-world example that integrates IBM Informix and ZK, a rich Internet application (RIA) framework. Informix is a flagship IBM RDBMS product, while ZK is a Java-based web application framework supporting Ajax applications. This event-driven framework enables creation of rich user interfaces with minimal knowledge and use of JavaScript. ZK's unique server-centric approach enables synchronization of components and events across the client and server via the core engine.
Gain a foundational understanding of the intrinsic objects available in the JavaScript language.
Explore the capabilities of the dojox.mobile and dojox.charting packages. In this article, use the step-by-step examples to create a mobile charting application with the Dojo Toolkit, then enhance the application to support touch interactions. Advanced topics, such as improving rendering performance, are also covered.
Gretty is one of a new school of ultra-lightweight frameworks made for building web services. Built on top of the blazingly fast Java NIO APIs, Gretty leverages Groovy as a domain-specific language for web endpoints and Grape's Maven-style dependency management. In this article, get started with using Gretty to build and deploy Java web service applications.
Spring, a platform used to run Java enterprise applications, provides several benefits including increased productivity and runtime performance. Spring Android, an extension of the Spring framework, simplifies the development of Android apps. The main features of Spring Android are a REST client for Android and Auth support for accessing secure APIs. Learn to access a RESTful web service with the Spring Android REST Client.
Over the last two years there's been a significant change in approaches to business process management (BPM). We are witnessing an evolution from a techno-centric approach to building business processes to an approach that is aligned with business stakeholders. When compared to traditional Information Technology (IT) BPM approaches, a team-oriented approach to BPM design, development, and optimization results in higher success with business process solutions. This article discusses collaborative BPM approaches and recommended practices to support common goals and outcomes for business and IT stakeholders..
The Client Experience Program for IBM WebSphere Products brings clients and IBM product development teams together to share information about products, usage experience, requirements, and best practices. Through no-charge activities and events, you can improve your understanding of WebSphere products and contribute feedback so that the products you use can continue to meet your future needs.
Most IT projects that involve a service-oriented architecture (SOA) ? and the majority of projects do ? also deal with aspects of integration and connectivity between services and their consumers. This article describes a relatively recent trend of adding additional aspects to the integration layer, namely state handling, decision making, and event handling, driven by the desire of the business to become more customer-centric.
This article walks you through building the back end and front end of a GPS-enabled web application using PHP.
JavaScript has become increasingly popular and is arguably one of the most widely used languages on the Internet. It can be used cross-platform and cross-browser, and it does not discriminate against back-end languages. Many great libraries are available to help with development, but sometimes, these libraries are so removed from the original language that beginning developers lack an understanding of the language fundamentals. This article, part 2 in a series, continues the fundamentals of JavaScript with events, try...catch statements, cookie use, and timing functions.
Learn a new way to implement Reverse Ajax, using WebSockets, a new HTML5 API. WebSockets can be implemented natively by browser vendors or by using a bridge that delegates calls to a hidden Flash component called FlashSockets. This article also discusses some constraints on the server side with Reverse Ajax techniques.
Web application technology reduces the cost of creating multiplatform applications. Developers can create applications that run on mobile platforms that differ in development technology, user interface style, input mechanisms, display form factor, size, and resolution. To design applications that are easy to use, and that integrate well across diverse platforms and devices, you need to consider several factors beyond conventional web applications and native mobile applications. This article explores the usability challenges of the mobile web, and provides several best practices for designing mobile web applications.
In this series, learn how to develop event-driven web applications using Reverse Ajax techniques to achieve a better user experience. The examples on the client side will use the jQuery JavaScript library. In this first article, explore different Reverse Ajax techniques. With downloadable examples, learn about Comet with streaming and long polling methods.
Real solutions to the Internet search challenges that Web marketers and content professionals struggle with every day!
Whether you?re a marketing, Web, or IT professional, product manager, or content specialist, Search Engine Marketing, Inc., Second Edition will help you define your SEO/SEM goals, craft a best-practices program for achieving them, and implement it flawlessly.
Mirlas begins by reviewing why multisite commerce is necessary and yet so challenging to execute. Next, he addresses multisite commerce from three perspectives: business, implementation, and technical. You?ll learn how to plan and implement a shared platform and use it to create and operate new sites that will remarkably lower incremental cost.
Whatever your industry, you?ll learn how to choose and implement the right social networking solutions for your unique challenges...how to avoid false starts and wasted time...and how to evaluate and make the most of today?s most promising social technologies?from wikis and blogs to knowledge clouds.
This book provides hands-on, start-to-finish guidance for business and IT decision-makers who want to drive value from Web 2.0 and social networking technologies. IBM expert Joey Bernal systematically identifies business functions and innovations these technologies can enhance and presents best-practice patterns for using them in both internal- and external-facing applications.
Web developers are, of course, familiar with JavaScript and the Document Object Model (DOM). While DOM provides a neutral interface for abstracting XML/HTML documents, JavaScript provides an implementation of this interface that lets you interact with web pages. In this article, explore the JavaScript bindings of DOM and learn how to manipulate a web document for peak performance. An example application illustrates DOM methods and properties, and how to attach handlers to DOM events.
HTML5 reflects the monumental changes in the way we now do business on the web and in the cloud. This article, the fourth in a four-part series designed to spotlight changes in HTML5, introduces the HTML5 Canvas element, using several examples to demonstrate functions.
Ajax plays an important role in this Web 2.0 era, yet sometimes its power is limited due to the same origin policy (SOP). In this article, learn how to overcome the collaboration restrictions. Explore several client-side solutions for integrating with other servers and providers. Examples show you how to improve your cross-domain communication and data transfer.
Knowing how users navigate and browse through your website can be valuable in guiding and justifying efforts to improve the site. For example, knowledge about page statistics might guide you to move the most frequently accessed pages to higher levels in the site, statistics on mouse clicks can identify rarely-used buttons, and long idle times could point to pages needing simplification. This article explains how to make use of new features in the Dojo Toolkit and IBM WebSphere Application Server Feature Pack for Web 2.0 and Mobile to generate analytics data, and offers advice on presenting the data in your own application.
This series of articles walks you through the process of creating a full client application for an Apple iPhone device that collaborates with an IBM WebSphere CloudBurst Appliance using a REST API. Using the vast REST-based APIs provided, WebSphere CloudBurst offers many integration opportunities for a Web 2.0 environment, such as with a smartphone. Building on the previous articles, Part 4 concludes this series showing how you can extend a class to manage the HTTPS protocol, including security management.
Modularity is one of those things that is considered good -- but not always realized -- in software engineering; hard to describe and harder to achieve. This article explores the key considerations for modularity and then applies them to Java, Maven, and OSGi to see how well they fit these capabilities. This will reveal the value that OSGi brings as a modularity system for Java, and provide the context for explaining the value of applying OSGi to enterprise applications.
Learn about Dojo Mobile, the mobile web development framework that's an extension of the Dojo toolkit. Using a practical example, learn how to include and use Dojo Mobile widgets and components in your applications. You'll see how to wrap your web application in a native application using PhoneGap. This article also offers a preview of some of the new features in the next version of the framework.
There are many commercial tools and open source frameworks for automated testing of web applications. Sahi, a tool for automating web application testing, is gaining popularity. Sahi is an open source tool that allows recording and replaying across browsers. It provides different language drivers for writing test scripts, and supports Ajax and highly dynamic web applications. In this article, learn about Sahi by using a sample application and test case. Learn to format scripts for Junit and to test with Apache Ant.
Get a technical introduction to Ajax programming, and discover the core JavaScript code and popular library implementations. This article presents a brief history of the technology, then outlines the technical basics of Ajax interactions using core JavaScript coding as well as three popular JavaScript libraries.
HTML5 reflects the monumental changes in the way you now do business on the web and in the cloud. This article is the third in a four-part series designed to spotlight changes in HTML5, beginning with the new tags and page organization and providing high-level information on web page design, the creation of forms, the use and value of the APIs, and, finally, the creative possibilities that Canvas provides. This installment introduces HTML5 APIs, using an example page to demonstrate functions.
Selenium is a suite of tools designed to automate web application testing across many platforms. With Selenium Grid, which is part of the suite, you can transparently distribute your tests on multiple machines. In this article, learn how to run your tests in parallel, cutting down the time needed for running in-browser test suites. With real test projects and code samples, learn to run tests in multiple environments in parallel and speed up the testing of your web applications.
HTML5 reflects the monumental changes in the way you now do business on the Web and in the cloud. This article is the second in a four-part series designed to spotlight changes in HTML5, beginning with the new tags and page organization and providing high-level information on web page design; the creation of forms; the use and value of the APIs; and, finally, the creative possibilities that Canvas provides. This second part introduces the concept of HTML5 form controls and touches on the role of JavaScript and CSS3.
Using applications is the main purpose of a Linux server. Whether your newly installed application runs from a desktop or the command line, this article helps you use your Microsoft Windows experience to quickly understand how to run applications on Linux.
In this tutorial, the fifth in a series of seven tutorials covering intermediate network administration on Linux, David Mertz continues preparing you to take the Linux Professional Institute Intermediate Level Administration (LPIC-2) Exam 202. By following this tutorial, you will examine several protocols' centralized configuration of network settings on clients within a network. DHCP is widely used to establish basic handshaking to clients machines such as assigning IP addresses. At a higher level, NIS and (more often) LDAP are used for arbitrary shared information among machines on a network. This tutorial also discusses PAM, which is a flexible, networked, user authentication system.
Linux has been described as one of the most secure operating systems available, but the National Security Agency (NSA) has taken Linux to the next level with the introduction of Security-Enhanced Linux (SELinux). SELinux takes the existing GNU/Linux operating system and extends it with kernel and user-space modifications to make it bullet-proof. If you're running a 2.6 kernel today, you might be surprised to know that you're using SELinux right now! This article explores the ideas behind SELinux and how it's implemented.
This article takes a detailed look at the design principles, the basis for deploying VPN, and the IPSEC protocol concept, providing a description of the general features of IPSEC and of the mechanisms required for its implementation. This article was specially selected for translation by developerWorks Russia as an example of developerWorks world-wide offerings.
DD-WRT brings all the power of the Linux networking stack to inexpensive wireless routers, turning a consumer router into a mighty networking powerhouse. Learn how to install and secure DD-WRT, and learn about the powerful, flexible command line behind the GUI.
Suppose you are a C++ developer and you need to do some prototyping quickly in Ruby. When you pick up a Ruby reference book like the Pickaxe or browse the Ruby site, you see familiar constructs like class declaration, support for threads, and exception handling. Just when you thought you knew how Ruby works, you realize that concurrency in your Ruby code is not behaving like Boost threads, catch and throw are not what they seem, and others have used something called self all over the place in their Ruby script. Welcome to Ruby!
Meet the gKrypt engine, the world's first package to employ general purpose graphics units (GPGPUs) for data encryption. It uses an Advanced Encryption Standard (AES) based 256-bit block cipher. This is the second article in a two-part series on AES encryption and the gKrypt engine. Part 1 introduced gKrypt and explained the AES algorithm in detail, its parallel breakdown and how to map it on a massive GPU architecture using the Compute Unified Device Architecture (CUDA). Part 2 looks at how AES is implemented on CUDA.
Meet the gKrypt engine, the world's first package to employ general purpose graphics units (GPGPUs) for data encryption, which is an important tool for information security. It uses an Advanced Encryption Standard (AES) based 256-bit block cipher to provide robust security. In this Part 1 of a two-part series, explore the AES, the GPU port of the Rijndael algorithm for Linux, the parallelizing of the AES algorithm, and the use of the gKrypt Engine supporting CUDA for NVIDIA-based GPUs.
Virtual Network Computing (VNC) is a popular tool for providing remote access to computers. The usual VNC configuration is optimized for single-user workstations, and logging in to the VNC port directly accesses a single user's desktop. This configuration is awkward on multiuser computers, however. Fortunately, you have an alternative. By linking VNC to a Linux computer's normal X Display Manager Control Protocol (XDMCP) server, accessing the VNC port enables users to provide their user names and passwords, thereby enabling a single VNC server instance to handle multiple user logins.
Keep wireless security simple. hostapd, the Host Access Point daemon provides solid WiFi encryption that meets enterprise standards without all the overhead of running FreeRADIUS. Learn more about this tool and how to incorporate it into your environment.
PubSubHubbub is an open protocol of web hooks for notifications of updates to news feeds in a publish/subscribe framework. It is defined as a set of HTTP server-to-server interactions integrated into Atom and RSS extensions. Despite the odd name, PubSubHubbub is fairly straightforward to use for designing applications with a lot of information updates. Learn about the standard and open-source implementations and support software for PubSubHubbub.
This is the second of seven tutorials covering intermediate network administration on Linux. In this tutorial, David Mertz discusses how to use Linux as a mail server and as a news server. Overall, e-mail is probably the main use of the Internet, and Linux is perhaps the best platform for running e-mail services on. This tutorial covers mail transport, local mail filtering, and mailing list maintenance software. It also briefly discusses server software for the NNTP protocol.
Learn how to install, upgrade and manage packages on your Linux system. This article focuses on the Red Hat Package Manager (RPM) developed by Red Hat, as well as the Yellowdog Updater Modified (YUM) originally developed to manage Red Hat Linux systems at Duke University's Physics department. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to explore the best ways to add new software and keep your system current. [Typographical errors noted by alert readers (see Comments at the end of this article) have been corrected, thanks! --Ed.]
Linux is everywhere. If you peer into the smallest smart phone, to the virtual backbone of the Internet, or the largest and most powerful supercomputer, you'll find Linux. That's no simple feat given the range of capabilities expected from these platforms. Discover the omnipresence of Linux and how it supports devices large and small as well as everything in between.
Models, tools, and concepts start this series of articles that describes the use of software bundles, image management, and other tools on IBM SmartCloud Enterprise to solve practical problems in enterprise IT management. This article presents an overview of software bundle and image management concepts, explains the resource model, compares this platform to other software package management platforms, discusses use cases, and surveys the tools available. The concepts are illustrated with the use of an example energy-saving calculator application.
Apache Pig is a high-level procedural language for querying large semi-structured data sets using Hadoop and the MapReduce Platform. Pig simplifies the use of Hadoop by allowing SQL-like queries to a distributed dataset. Explore the language behind Pig and discover its use in a simple Hadoop cluster.
This demo shows some of the C and C++ development features of the IBM Software Development Kit (SDK) for Linux on POWER.
This demo shows you how to work with Autotools projects within the IBM SDK for Linux on POWER.
External data provisioning requirements such as network configurations like IP addresses can cause problems when cloning a virtual machine to use in a new environment. If the external data is not available during the process, the reconfiguration of the VM will likely be incomplete. The authors offer a way to handle this problem, even without much knowledge of the application or without a form of activation scripting to help. Runtime Image Activation (RIA) is a prototype command-line interface that lets you orchestrate networking techniques to make sure your cloned VMs are appropriately configured.
Based on his own experiences successfully importing versions of CentOS and Ubuntu to IBM SmartCloud Enterprise, the author explains how to prepare your image and metadata, what kind of tools are required, how to set up your workbench, and delivers some tips for troubleshooting the process.
Have you ever wondered if Linux channel bonding would allow you to get faster throughput using IBM InfoSphere Streams? We have answered that question when running InfoSphere Streams release 2.0.0.2 on Red Hat Enterprise Linux release 5.5. In this article, we describe what channel bonding is at a high level, how we set up our test environment, and the results we observed. In our experiments, channel bonding increased bandwidth by as much as 68 percent.
Spark is an interesting alternative to Hadoop, with a focus on in-memory data processing. This practice session explores multithread and multinode performance with Scala, Spark, and its tunable parameters.
mod_pagespeed is a module from Google for Apache HTTP Servers that can improve the page load times of your website. It programmatically and automatically incorporates all the best practices for a speedy website into your site, and requires only minimal configuration. With mod_pagespeed, Apache web hosters can improve website speed quickly and easily.
Windows and Linux use different file system architectures. Fortunately, your Windows experience can put you on the fast track to being comfortable managing and monitoring the Linux extended file systems. This article helps you learn your way around the extended disk file system family on Linux.
Further explore how to use Python to create scripts for managing virtual machines using KVM. Learn how to add a GUI to expand on the simple status and display tool.
Iptables is the standard Linux firewall application. It is easy to configure and maintain while powerful enough to provide the control expected from a high-end appliance. Learn how to get started with iptables, recover from common issues, and simulate a small-office usage scenario.
In preparation for taking the Linux Professional Institute Certification exam LPI-302 for systems administrators, learn how to measure Samba performance and make Samba work faster.
In this article, the author discusses the needs that drive migration of data centers into the cloud, details the role of virtualization in both public and private cloud infrastructures, and outlines the security and compliance implications of cloud computing in order to provide insight into the protection of sensitive data in the cloud through "administrative access" and "privileged delegation."
In preparation for taking the Linux Professional Institute Certification exam LPI-302 for systems administrators, learn how to secure Samba and troubleshoot problems related to security.
Use this roadmap to find IBM developerWorks articles that help you learn and review the fundamentals of supporting Linux in a mixed UNIX/Microsoft environment. If you are also pursuing professional certification as a Linux systems administrator, these articles can help you study for the Linux Professional Institute Certification exam LPI-302. This roadmap is organized according to the 21 objectives in the LPI-302 exam, which is required to get the LPIC-3 specialization in mixed environments.
Pointing and clicking is fine for most day-to-day computing tasks, but to really take advantage of the strengths of Linux over other environments, you eventually need to crack the shell and enter the command line. Lots of command shells are available, from Bash and Korn to C shell and various exotic and strange shells. Learn which shell is right for you. [Note: Minor corrections were made to Listings 2 and 3.]
Since the release of Windows 2000, Microsoft has offered Active Directory as its directory service, and later versions have renamed it Active Directory Domain Services (AD DS). AD DS leverages the popular LDAP for resource management, Kerberos for authentication, and tight integration with DNS for name resolution. If you currently use AD DS, integrating a Linux server can help centralize identity management and maintenance for Linux printing and file services. However, doing so can be challenging. Fortunately, Samba provides a solution for Linux integration with AD DS that requires no modification to the directory service. [Note: We corrected the Listing 4 caption and clarified the section on "Using the net command" per reader feedback.]
This two-part series explores how to use Python to create scripts for managing virtual machines using Kernel-based Virtual Machine (KVM). In this installment, learn the basics of using libvirt and the Python bindings to build a few simple status and display tools.
In preparation for taking the Linux Professional Institute Certification exam LPI-302 for systems administrators, learn how Samba interacts with the Linux file system and how to manage permissions.
Get to know Hadoop scheduling, and explore two of the algorithms available today:fair scheduling and capacity scheduling. Also, learn how these algorithms are tuned and in what scenarios they're relevant.
Create maintainable, style-driven documents that can be automatically distributed in different formats using Sphinx. Discover how Sphinx abstracts the tedious parts and offers automatic functions to solve common problems like title indexing and special code highlighting.
While UNIX and Linux computers can be clients to a Samba server, most clients of most Samba servers run Windows. Therefore, you should know how to use the Windows features that enable you to connect to a Samba server. For example, using certain Samba commands on a Linux computer can help you debug problems should they occur.
If you're a Windows user, you may find your new Linux system to be a bit different from what you're used to. One of your first tasks will probably be installing additional software, including some of IBM's extensive software for Linux. In many cases, installing software on a Linux system requires you to log in, become the super user (or root) for some tasks, open a terminal or shell window, and mount a CD-ROM, DVD, or USB drive. This article guides you through these basic first-time user tasks and more.
If your network includes a domain controller (either a Windows computer or a Samba server), you can use its user database instead of or in addition to maintaining local login users in a Linux computer's local account database. Doing so requires using a set of tools known as Winbind. This toolset can be handy even for Linux computers that don't run Samba to share files or printers; users with Windows domain accounts can log in at the console or use SSH to access Linux-only features, use POP or IMAP mail servers with Windows domain authentication, and so on.
Naming is unusual in SMB/CIFS networks. Although modern clients can use Internet domain names to refer to each other, older clients relied on a Microsoft-specific system known as the Windows Internet Name Service (WINS) server, or the NetBIOS Name Server (NBNS); the two terms are synonymous. Configuring Samba properly for name resolution is therefore important. So is configuring browsing, which is the mechanism by which servers learn what shares are available on specific servers.
In addition to, or instead of, functioning as a server on a Windows network, a Linux computer can function as a client. You can use an ftp-like program to transfer files and modify a server, or you can mount a share from a Samba or Windows Server machine on your Linux computer, giving normal programs the ability to access files directly on the server. When doing so, though, keep in mind the characteristics of the original SMB protocol and its newer CIFS variant, particularly when accessing a Windows Server machine: You may not have access to all the file system features that a Linux computer supports.
If you manage user and group accounts, you may find that these accounts don't always work seamlessly for users in mixed environments--a common source of frustration for both users and systems administrators. Fortunately, the Samba suite provides tools to help you manage the process. In this article, learn how to manage user and group accounts in your mixed environment.
In preparation for taking the Linux Professional Institute Certification exam LPI-302 for systems administrators, learn how to set up and store passwords, integrate Samba with LDAP, and use ACLs to protect your Linux installation.
Get a comprehensive intro to working with Linux through the command console. Ideally suited to serious users of Linux -- including Linux system administrators, developers, and power users -- this knowledge path also prepares you for the Linux Professional Institute's LPIC-1 certification exam 101 (topic 103).
Learn the essential elements of hard disk layout, system boot configuration, and application package administration. Ideally suited to serious users of Linux -- including Linux system administrators, developers, and power users -- this knowledge path also prepares you for the Linux Professional Institute's LPIC-1 certification exam 101 (topic 102).
If you work in a mixed environment in which non-English characters are used, you need to understand character codes and code pages as they relate to your locale. You also need to understand Linux and Windows environments differ when interpreting name spaces. Although Samba supports internationalization, if you work with older Windows clients , Samba 2.x versions, or otherwise need to use a specific character set other than Unicode, you'll need to do a bit of configuration tuning. Depending upon the environment's locale in use, building and patching conversion libraries may also be necessary. In this article, learn how to handle internationalization in your Linux environment.
The Samba Web Administration Tool (SWAT) is a web-based administration tool for Samba, enabling GUI configuration from any computer with a web browser. SWAT is a server in its own right, and like all servers, it requires at least minimal configuration. In this article, learn how to install and configure SWAT itself and how to use SWAT to manage Samba.
Use this roadmap to find IBM developerWorks articles that will help you learn and review basic Linux tasks. And if you're also pursuing professional certification as a Linux system administrator, these articles can help you study for the Linux Professional Institute Certification (LPIC) exam 101 and exam 102. This roadmap is organized according to the 43 objectives in the 101 and 102 exams, which you are required to pass for LPI level 1 certification.
Learn to guide your Linux system through the boot process. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about the boot process.
xdotool is a helpful library of instructions that allows programmers to emulate keystrokes and mouse actions. The particular strength of the tool comes when the keyboard or mouse is absent or in accessibility situations where the user is not physically able to employ regular input methods. This article has two goals: first, to provide an introduction to the use of xdotool in a Linux desktop environment, and second, to use voice input to trigger actions typically done through hardware input. A concluding example uses XML to store xdotool-oriented code fragments for insertion into auto-generated dialog manager code.
Learn how to determine which shared libraries your Linux executable programs depend on and how to load them. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn for fun. [Typographical errors noted by alert readers (see Comments at the end of this article) have been corrected, thanks! --Ed.]
Learn about the IBM Software Development Kit for Linux on POWER. See how to launch the SDK using SSH and X-Forwarding or VNC techniques.
In SMB/CIFS parlance, a domain is similar to a workgroup: It's a collection of related computers, typically existing on a single local network. A domain, however, features a special computer known as a domain controller that manages logons for all the servers in the domain. It also provides a few additional services. Samba can function as a domain controller, but you need to set several Samba options for it to do so.
In preparation for taking the Linux Professional Institute Certification exam LPI-302 for systems administrators, learn how to set up printers and share them between Linux and Microsoft clients.
This article is a primer on the basic types of data compression, with an introductory explanation of the mathematics and algorithms that go into compression techniques. Brief consideration and examples are given to help you evaluate what types of compression tools and techniques are suited to your own applications. Pointers are provided to more advanced theoretical discussions and ready-to-use compression tools and libraries. [Update: Tables 1 and 2 were updated to correct formatting errors. -Ed.]
Throughout, the authors present realistic examples based on today's most popular enterprise Linux platforms, Intel-based Red Hat Enterprise Linux, and Novell SUSE Linux Enterprise Server. These examples are designed for simplicity, clarity, and easy adaptation to any contemporary Linux environment
The book?s hands-on approach lets readers quickly understand how to write Linux applications that are portable across multiple distributions, including those from SuSE, Mandrake, and Solaris.
The language road in computer science is littered with the carcasses of what was to be "the next big thing." And although many niche languages do find some adoption in scripting or specialized applications, C (and its derivatives) and the Java language are difficult to displace. But Red Hat's Ceylon appears to be an interesting combination of language features, using a well-known C-style syntax but with support for object orientation and useful functional aspects in addition to an emphasis on being succinct. Explore Ceylon and find out if this future VM language can find a place in enterprise software development. [Update: The fail block is clarified in Listing 7. -Ed.]
A package is software that is bundled and ready for installation on a Linux system. Installing and removing packages are basic operations for any Linux user or administrator. This article offers hands-on practice with Debian package management that will help you feel comfortable performing these tasks in a real-world environment. The exercises and solutions in this article focus on a variety of package management tasks.
A package is software that is bundled and ready for installation on a Linux system, and installing and removing packages are basic operations for any Linux user or administrator. This article offers hands-on practice with the Red Hat Package Manager (RPM) and YUM software management tools that will help you learn to perform these tasks in a real-world environment. The exercises and solutions in this article focus on a variety of package management tasks.
If you're designing or otherwise working with partition tables, understanding how to navigate both fdisk and parted can help you plan hard disk layout with confidence. The exercises and solutions in this article give you practice in designing and working with a hard disk layout for a Linux computer.
A great many Linux applications use shared libraries, executable code that a program links to only at runtime. This dynamic linking cuts down on package size and memory requirements. Linux provides tools for working with shared libraries, knowledge of which is an important part of an admin's skill set. The exercises and solutions in this article give you practice managing shared libraries.
Changing the boot manager configuration lets you boot into different operating systems or different versions of the same operating system. This article offers hands-on practice to build your proficiency in making practical changes in your boot manager's configuration. The exercises and solutions in this article focus on adding a kernel to an existing GRUB configuration and interact with GRUB at boot time.
Learn how to parse a machine-readable shared memory dump on a Linux platform and extract your expected data format using Python and the struct utility. In this article, you'll first see how to determine the format of the data by reading the binary file format of the dump file; you need this in order to parse, extract, and analyze the data. Next, you'll see how to parse the file based on the format, and then match the results with the expected format to output a validation result. Update: In the Downloads section you'll find a working Python application and dump file that you can use as-is or modify for your own needs. We changed the name of the dump file throughout this article to match the name used in the download. -Ed.
In preparation for taking the Linux Professional Institute Certification exam LPI-302 for systems administrators, learn how to configure Samba and structure your configuration file. Also, learn how Samba interacts with the network, how to configure logging, and how to debug problems with Samba.
Part 2 of this series details how pseudo's root emulation works by tracking the path of an intercepted call to the database and back. If you want to replace open(2) with your own code, this is where you find out how.
Cfengine is a popular data center automation solution used by organizations around the world. It is scalable to tens of thousands of machines from laptops, desktops, and embedded devices to mainframes. Learn how you can use this versatile and flexible technology for solving data center issues.
When you hear the phrase "virtual machine" today, you probably think of virtualization and hypervisors. But VMs are simply an older concept of abstraction, a common method of abstracting one entity from another. This article explores two of the many newer open source VM technologies: Dalvik (the VM core of the Android operating system) and Parrot (an open source VM technology for efficiently executing dynamic languages).
Samba uses a human-readable file to manage and store its configuration parameters, so the most sophisticated tool you'll need to configure Samba is a text editor. Learn how the configuration file is structured, how Samba interacts with the network, how to configure logging, and how to debug problems with Samba.
Like most software, Samba must be installed before it can be used. Several methods of doing this exist, but they fall into two broad categories: compiling and installing from source code and installing pre-built binary packages. The former is the more difficult but also more flexible option, while the latter is quite easy on most Linux distributions but locks you into the decisions your distribution maintainer has made concerning supported versions, patches applied, compile-time options enabled, and so on.
Capturing screen images of applications is something that all technical writers, most graphical application developers, many technical marketing staff members, and even many users need to do. Modern UNIX systems provide a number of different tools to capture graphical screens and single windows. This article, the second of three, focuses on tools that are present on every Linux and UNIX system that uses the X Window System. These tools make it easy to capture graphical portions of the screen to help illustrate both proper and improper program behavior.
Today's technical news is filled with stories of server and desktop virtualization, but there's another virtualization technology that's growing rapidly: embedded virtualization. The embedded domain has several useful applications for virtualization, including mobile handsets, security kernels, and concurrent embedded operating systems. This article explores the area of embedded virtualization and explains why it's coming to an embedded system near you.
Samba uses Trivial Database files to store both persistent and temporary data as part of its job integrating file and print sharing between Linux and Windows. In preparation for the Linux Professional Institute Certification exam LPI-302, learn all about the Samba Trivial Database (TDB) format that Samba uses to store information, how to look inside TDB files, and how to back them up.
Managing the source code for a software development project is only slightly less important than writing it in the first place. UNIX and Linux systems offer a rich selection of version control system (VCS) packages, each of which takes a slightly different approach to this common concern. This article focuses on the Mercurial source code management system, often simply referred to as hg. Mercurial provides a powerful, modern, and light-weight solution for source code control that makes it easy for developers to make and debug their changes to a software project while maintaining a stable, centralized source code repository that all project members can depend upon.
The IBM DB2 pureScale Feature lets you scale out your database system by easily adding machines to your cluster. This article walks you through the process of deploying the DB2 pureScale Feature on SUSE Linux. It uses a 10 gigabit Ethernet infrastructure in a two System x 3850 X5s server configuration that is connected to a DS5100 storage controller. The article also includes post-installation steps and basic information for using DB2 pureScale, such as how to add and remove members and how to make sure you're prepared for high availability and disaster recovery.
If you're a Windows user, you may find your new Linux system to be a bit different from what you're used to. One of your first tasks will probably be installing additional software, including some of IBM's extensive software for Linux. In many cases, installing software on a Linux system requires you to log in, become the super user (or root) for some tasks, open a terminal or shell window, and mount a CD-ROM, DVD, or USB drive. This article guides you through these basic first-time user tasks and more.
Linux is the Swiss Army knife of file systems, and it also offers a wide variety of storage technologies for both desktops and servers. Beyond the file system, Linux incorporates world-class NAS and SAN technologies, data protection, storage management, support for clouds, and solid-state storage. Learn more about the Linux storage ecosystem and why it's number one in server market share.
Learn how to provision a Linux data and web application server, convert your private key, connect to the service via SSH, install a pre-configured PHP distribution, and test your connections.
Samba uses Trivial Database files to store both persistent and temporary data as part of its job integrating file and print sharing between Linux and Windows. In preparation for the Linux Professional Institute Certification exam LPI-302, learn all about the Samba Trivial Database (TDB) format that Samba uses to store information, how to look inside TDB files, and how to back them up.
Scheduling is one of the most complex--and interesting--aspects of the Linux kernel. Developing schedulers that provide suitable behavior for single-core machines to quad-core servers can be difficult. Luckily, the Linux Scheduler Simulator (LinSched) hosts your Linux scheduler in user space (for scheduler prototyping) while modeling arbitrary hardware targets to validate your scheduler across a spectrum of topologies. Learn about LinSched and how to experiment with your scheduler for Linux.
Samba isn't a single program; rather, it's a series of interrelated servers and utilities, each of which has its own specific purpose. Understanding the differences between these servers and utilities will help you manage your Samba system. Furthermore, Samba implements a number of different security models, which you must understand to properly integrate Samba into an existing network or to set up a new network with Samba servers at its core.
This series of articles explores how to use Python to create scripts for the GNOME desktop, the screenlets framework, and Nautilus to deliver a highly productive environment. Scripts on the desktop enable drag-and-drop functionality and quick access to the information and services you commonly use. In this installment, learn how to use Python to add functionality to extend Nautilus on your desktop.
A key benefit of virtualization is the ability to consolidate multiple workloads onto a single computer system. This consolidation yields savings in power consumption, capital expense, and administration costs. The degree of savings depends on the ability to overcommit hardware resources such as memory, CPU cycles, I/O, and network bandwidth. Technologies such as memory ballooning and Kernel Same-page Merging (KSM) can improve memory overcommitment with proper manual tuning. Autonomic reconfiguration of these controls in response to host and VM conditions can result in even greater savings. In this article, learn how to apply these techniques to increase your savings.
In preparation for taking the Linux Professional Institute Certification exam LPI-302 for system administrators, learn the fundamental concepts surrounding SMB/CIFS, file sharing, and print services in a mixed environment.
The Linux, Apache, MySQL, and PHP (LAMP) architecture is one of the most popular choices for web server architectures in use today. Author John Mertic examines five things every LAMP application should take advantage of for optimum performance.
Bochs, like QEMU, is a portable emulator that provides a virtualization environment in which to run an operating system using an emulated platform in the context of another operating system. Bochs isn't a hypervisor but rather a PC-compatible emulator useful for legacy software. Learn about platform emulation using Bochs and its approach to hardware emulation.
Learn how to use the command line from Linux to create an instance in the IBM SmartCloud Enterprise environment. The author also shows you how to create multiple instances with a simple script.
Although ZFS exists in an operating system whose future is at risk, it is easily one of the most advanced, feature-rich file systems in existence. It incorporates variable block sizes, compression, encryption, de-duplication, snapshots, clones, and (as the name implies) support for massive capacities. Get to know the concepts behind ZFS and learn how you can use ZFS today on Linux using Filesystem in Userspace (FUSE).
This series of articles explores how to use Python to create scripts for the GNOME desktop, the screenlets framework, and Nautilus to deliver a highly productive environment. Scripts on the desktop enable drag-and-drop functionality and quick access to the information and services you commonly use. In this installment, learn how to build a desktop application using the screenlets widget toolkit.
The new features of the IBM Cloud enable application developers and architects to eliminate single points of failures in applications. This article provides a detailed guide on those features. It includes a discussion of the approach the IBM Cloud takes (added support for virtual IP addresses); how to prepare your cloud instances to take advantage of this feature; how to set up a highly available website; and how to test that site.
Learn to shut down or reboot your Linux system, warn users that the system is going down, and switch to a more or less restrictive runlevel. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about shutting down, rebooting, and changing runlevels.
BeagleBoard.org recently introduced BeagleBoard revision xM, a new edition of the highly successful open-hardware BeagleBoard currently at revision C. This article describes the necessary environment and steps for booting Linux on the BeagleBoard-xM with Angstrom Linux, Android, and Ubuntu.
Learn to set and check disk quotas on your Linux filesystems to prevent individual users from using more space than allowed and to prevent whole filesystems from filling up unexpectedly. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about quotas.
Learn to manage file ownership and permissions on your Linux filesystems. Learn about access modes such as suid, sgid, and the sticky bit and how to use them to enhance security. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about file ownership, permissions, and security.
Network File System (NFS) has been around since 1984, but it continues to evolve and provide the basis for distributed file systems. Today, NFS (through the pNFS extension) provides scalable access to files distributed across a network. Explore the ideas behind distributed file systems and in particular, recent advances in NFS.
In a virtual data center the deployment and the dismissal of complex appliances require that multiple configuration steps be executed. Reconfiguration requirements include establishing and removing communication between different components of the same product running in different virtual machines (VMs) as well as different products running in different VMs. Traditionally this process has been burdensomely manual or somewhat inflexible via the invoking of predefined scripts with static values. In this article, the authors propose StereoCable, automated plug-and-play support of complex virtual appliances in a virtual data center, to solve this issue. This way VMs are able to discover and automatically connect to each other based on predefined connections policies.
With the explosive growth of platform virtualization, it's not surprising that other parts of the enterprise ecosystem are being virtualized, as well. One of the more recent areas is virtual networking. Early implementations of platform virtualization created virtual NICs, but today, larger portions of the network are being virtualized, such as switches that support communication among VMs on a server or distributed among servers. Explore the ideas behind virtual networking, with a focus on NIC and switch virtualization.
Up to now, you have moved your application to the cloud and can enable and disable resources automatically in response to demand. In this article, the fourth in a series on migrating a Linux application to the Amazon cloud, learn how to keep this changing environment under control so that it supports your application and business.
Although the Perl language is portable among platforms, most of the scripts used for system administration leverage platform-specific resources. And scripts meant for Solaris might use Solaris-specific pathnames and system commands that may have not equivalents on Linux. This article gives you a roadmap for "code remediation" to help you port a Perl script from Solaris to Linux when direct mapping isn't available.
Learn to mount your Linux filesystems; configure and use removable USB, IEE 1394, or other devices; and properly access floppy disks, CDs, and DVDs. You can use the material in this article to study for the LPI 101 exam for Linux system administrator certification, or just to learn about accessing Linux filesystems.
If your PHP applications perform beyond CRUD operations, chances are you have worked with XML. Navigating an XML document or data stream for the desired data elements can be cumbersome, though, and even somewhat intimidating for PHP developers. It can be especially overwhelming when the XML data structure is complex. XPath is a W3C standard whose sole purpose is just that -- getting to the right data element, or, specifically, the desired node. PHP supports XPath as part of its XML classes and functions. In this article you explore some basic scenarios for locating information in XML and how XPath can do the hard work for you in your PHP applications.
The type-aware and schema-aware features of XSLT 2.0 can greatly assist you when you debug a stylesheet, and improve stylesheet quality and robustness in handling all input data. Learn how to use type-aware and schema-aware XSLT 2.0 during the debugging and testing process to avoid common issues with invalid paths, incorrect assumptions about data types, and cardinalities. Also, find examples of XSLT stylesheets that contain errors that would not be caught if schema-aware features were not in use, and discover how explicitly specifying types results in useful error messages.
In Part 2 of this series, learn about mining association rules from XML documents. Mining association rules from XML documents is different from mining rules from relational data. Information can be structured differently in XML because of the language's flexibility and hierarchical organization. This article also introduces the notion of dynamic association rules. You'll explore an approach to mining XML association rules when the underlying XML documents change without a full re-run of the association rules discovery algorithm.
Similar to the task of mining association rules from an XML document, clustering XML documents is different from clustering relational data because of the specific structure of the XML format, its flexibility, and its hierarchical organization. Learn about clustering XML documents as a major task in XML data mining in this third article in a series on XML data mining.
XML is used for data representation, storage, and exchange in many different arenas. This series explores one facet of XML data analysis: XML data mining. In this first article, get an introduction to some techniques and approaches for mining hidden knowledge from XML documents. Learn about mining data, the hierarchical structure of the information, and the relationships between elements. Subsequent articles will cover mining XML association rules and clustering multi-version XML documents.
Android, the most commonly used smartphone platform, also functions on mobile tablets. XML is the standard medium of data exchange. You can use the same builder, parser, and transformer APIs for standard XML parsing and transformation and for Android. In this article, create and parse an XML document on an Android device using a DocumentBuilder object obtained from a DocumentBuilderFactory. You'll parse the XML document using an extension of an XML pull parser.
EPUB 3.0, which is the latest revision of the industry-standard XML e-book format, jumps into modern web technology by embracing HTML5 and CSS3. It retains its focus on XML-driven toolkits by requiring XHTML serialization and adding supplementary XML vocabularies, such as MathML and SVG. EPUB 3 offers a variety of options for developing advanced, digital-native publications. In this article, learn to create rich-layout pages using some new features in EPUB 3.
As the name suggests, Extensible Stylesheet Language Transformations (XSLT) can be used as a stylesheet. Like Cascading Style Sheets (CSS), XSLT helps to separate style from content. You can simplify and enrich your XHTML documents with XSLT, which relieves the XHTML document of navigation. In this article, learn how to use XSLT as stylesheets, which can be executed on the server or in every modern Internet browser. Several examples show how to start developing your own XSLT stylesheets.
Part 1 of this series showed how to use microdata with Schema.org terms so search engines can display your content better in search results. It also showed how to reuse that same microdata markup to improve the display on your own site. In this article, learn to use microdata to enable a collaborating group of site owners to easily hook up their sites and share content on a centralized site.
The microdata specification lists two reasons why you might want to use microdata: To allow generic scripts to provide services that are customized to the page or to enable content from a variety of cooperating authors to be processed by a single script in a consistent manner. In this two-part series, learn to use microdata in both of these ways, starting with generic scripts on top of microdata. In this article, you will write one snippet of HTML to give you both an interactive event map and to enable Google, Bing, and Yahoo to display your page better in search results with Rich Snippets.
Most programmers think the XQuery language was developed to satisfy a niche market: A data querying and transformation language designed to handle XML data. In the case of relational databases, the prevailing practice is to use SQL for non-XML data and use XQuery for XML. This article makes the case that the powerful programming constructs available in the XQuery language make it a better programming language than SQL, and that this improvement in expressiveness and ease of use is enough to warrant the design of databases with an increasing emphasis on XML data types.
The XML format is a common standard for document and message exchange. Learn how to use WebSphere Transformation Extender to easily migrate legacy data to XML. WebSphere Transformation Extender separates data transformation logic and business flow logic, which can save on maintenance costs. Walk through a scenario that includes examples and source code. Create a WebSphere Transformation Extender map to retrieve legacy data from a database and transform it to an XML file.
Scalable Vector Graphics (SVG) are part of the vector family of graphics. They have several benefits over their raster counterparts: JPEG, GIF, and PNG. In this article, explore the basic concepts and usage of SVG graphics in HTML5. Learn about drawing, filters, gradients, text, and adding SVG XML to web pages.
XML is best suited to storing data, so it's inevitable that at some point someone will ask you to pull information from a database and manipulate it as though it were XML. This tutorial will teach you to access a database using JDBC and use SQL to pull information, which you will then use to build an XML Document using a predetermined mapping.
The pureXML capabilities of IBM DB2 allow you to store XML natively in a database without modification, while Adobe Flex applications can read XML directly and populate Flex user interfaces. In this three-part article series, you will create a microblogging application that takes advantage of pureXML, Web services, and Adobe Flex; and even allows you to publish your microblogging updates on Twitter.
The IMS Question and Test Interoperability (QTI) specification is a widely used standard for marking up questions and other learning material. Look at the response and result processing for a QTI item and learn what happens when a user answers a question.
Learn how to publish XML documents in HTML and PDF using the css2xslfo utility.
Resource Description Framework (RDF) is the standard framework for the Semantic Web and a recommended framework for the Linked Data movement. This article details the most recent updates to and implications of the RDF concept specification. It also covers some new ontology specifications such as data cataloging vocabularies and RDF database mapping systems.
Learn to build an iOS slideshow application as you walk through the process step-by-step in this article. The example application will communicate with a web server to retrieve an XML slideshow definition and display the images contained in the slideshow.
Welcome, authors! This article shows how to prepare technical articles, tutorials, and knowledge paths for publication on the developerWorks site. The steps are simple. You download our XML-based template for articles or for tutorials, fill in the template using any validating XML editor or your preferred Microsoft Windows or Linux text editor, check it to ensure it follows the tagging structure as defined in the developerWorks schema, and preview your article or tutorial. Tips for composing your content and submitting it to the developerWorks staff are also included.
With Google, Yahoo, and Bing's announcement of schema.org, microdata is quickly gaining ground as a way to create applications that rely on data from many different websites. In this article, learn how to use Drupal to add microdata to your pages. Easily make your content available for use in applications such as Google's Rich Snippets.
It's simple to introduce mistakes that go unnoticed in XSLT stylesheets. Neither static nor dynamic error checking helps: Only thorough functional testing will reveal them. XSLT 2.0 introduced several new options and possibilities, and you can use some of them to make your stylesheets safer and your testing easier. Discover these XSLT 2.0 features, such as the type system, to add otherwise-impossible error checking to your stylesheets.
The ACORD Transactional/Business Wrapper (TXLife) XML specification is the preferred data format for internal and external data integration within the life, annuities, and health insurance industry. The standard is broad and flexible. Learn the structure of ACORD TXLife messages, the challenges implementers face, and the tools and techniques that you can use to successfully implement the standard.
Access a JAX-RS web service with the Apache HttpClient library. Jersey, a reference implementation for JAX-RS, simplifies development of RESTful web services in the Java environment. Android is a popular smartphone and this article shows you how to create a JAX-RS client for Android. You'll create an Apache HttpClient library client to a JAX-RS web service.
For all of XML's good points -- flexibility and adaptability, to name two -- it is a verbose metalanguage. The size of XML files can impede the efficient interchange of and access to data, especially when sending files to web services. Data compression plays a significant role in optimizing XML. This knowledge path introduces both the theoretical and the practical details of data compression. This knowledge path is designed for those who are new to XML and application development.
Blogger is a free, popular blogging platform that lets users create their own weblogs, and post messages and news, through a WYSIWYG editing interface. With the Blogger Data API, which is REST-based, you can access Blogger content through any XML-compliant programming toolkit. In this article, learn how to use the Blogger Data API to list blog content, add or edit blog posts, and manipulate blog comments with the Zend Framework's Zend_Gdata component. You'll build a simple application that demonstrates the power of the Blogger API.
Develop online applications that are both thumb and user friendly for the mobile environment with PHP, XML, jQuery, jQuery mobile, and jQuery charting. In this article, build the back end and front end of a polling application that uses charting to show the results of each poll.
At the 2011 XML Prague conference, Dr. Michael Kay, the principal developer of the Saxon XSL/XQuery parser, unveiled Saxon-CE, a client-side XSLT 2.0 parser that runs using JavaScript in the web browser. Learn how you can use XSLT 2.0 and Saxon-CE to build an application view for a simple healthcare application that works from a clinical document written using Health Level 7 Clinical Document Architecture (HL7 CDA).
The Protein Data Bank (PDB) is a unique world-wide repository of structural data about proteins. The PDB data is available in XML format in order to provide flexibility, extensibility, and ease of data exchange in the biological research community. Analyzing data in the PDB can help explain diseases, develop new drugs, or understand the interactions between different proteins. However, one of the key challenges is to efficiently store and query this information to find and extract information and correlations of interest. This article describes how to use the hybrid capabilities of DB2 ? relational and pureXML features ? to manage and analyze PDB data.
xdotool is a helpful library of instructions that allows programmers to emulate keystrokes and mouse actions. The particular strength of the tool comes when the keyboard or mouse is absent or in accessibility situations where the user is not physically able to employ regular input methods. This article has two goals: first, to provide an introduction to the use of xdotool in a Linux desktop environment, and second, to use voice input to trigger actions typically done through hardware input. A concluding example uses XML to store xdotool-oriented code fragments for insertion into auto-generated dialog manager code.
In EPUB documents, you cannot detect some problems with normal validation methods. As long as the document validates as well-formed XML and follows the EPUB standard, it can appear to be correct but might not read correctly in an e-Reader. Examples include broken paragraphs, bad page numbering, and spelling errors caused by OCR scanning. But you can view and correct errors using two methods: with the EPUB editor Sigil and with PHP in combination with SimpleXML and the Enchant libraries. Regular expressions provide the key to efficient processing.
Build the back end of a multiplayer, network-enabled tic-tac-toe game with a native Android front-end application in this article.
Increasingly, Representational State Transfer (REST) has become the preferred way of communicating in today's service-oriented architecture environments. There are many services and information sources that can be addressed via a URL and accessed using HTTP. On the other hand, there is still a significant amount of information stored in relational database management systems (RDBMS) -- like DB2. Modern RDMSes provide powerful processing features for relational data (through SQL) and XML data (through SQL/XML or XQuery).
Identi.ca is a popular free microblogging service that allows users to post status messages and news. Web application developers are able to create, access, and search these messages through the Identi.ca API. This two-part article introduces the Identi.ca API and illustrates how you use it with PHP to create dynamic web applications.
Identi.ca is a popular free microblogging service that allows users to post status messages and news. Web application developers are able to create, access, and search these messages through the Identi.ca API. This two-part article introduces the Identi.ca API and illustrates how you use it with PHP to create dynamic web applications.
Spring, a platform used to run Java enterprise applications, provides several benefits including increased productivity and runtime performance. Spring Android, an extension of the Spring framework, simplifies the development of Android apps. The main features of Spring Android are a REST client for Android and Auth support for accessing secure APIs. Learn to access a RESTful web service with the Spring Android REST Client.
This article walks you through building the back end and front end of a GPS-enabled web application using PHP.
The art of data mining is a wide field, and mentioning the term to two different developers gives you two very different ideas about it. In this article, you learn what data mining is, its importance, different ways to accomplish data mining (or to create web-based data mining tools) and develop an understanding of XML structure to parse XML and other data in PHP technology.
XML is considered a standard for data representation and exchange over the World Wide Web. XML has great flexibility and wide acceptance, but one drawback is the large size of XML documents. This size means that the amount of information that you transmit, process, store, and query is often larger than that of other data formats. You can choose from several XML compression techniques to deal with these problems.This article provides an overview of current XML compression techniques.
Need to distribute documentation, create an eBook, or just archive your favorite blog posts? EPUB is an open specification for digital books based on familiar technologies like XML, CSS, and XHTML, and EPUB files can be read on portable e-ink devices, mobile phones, and desktop computers. This tutorial explains the EPUB format in detail, demonstrates EPUB validation using Java technology, and moves step-by-step through automating EPUB creation using DocBook and Python.
When you convert existing content to e-book formats, to DITA, or to other structured standards, you often infer and add structure to your documents. The advanced regular expression and grouping capabilities of XSLT 2.0 make it an excellent language for converting and enhancing content. Discover the features of XSLT 2.0 that are most useful when you convert unstructured or semi-structured narrative content to a more structured vocabulary and work through several common scenarios.
Walk through the entire process of building PDF files dynamically using PHP. Experiment with open source tools, such as the Free PDF library (FPDF) or PDFLib-Lite, and PHP code for control of the PDF format of your content.
Examine the challenges presented by the explosion of data, the analytics thereof, and an introduction to some standards relevant to these challenges. A sample scenario depicts a system where large amounts of data are ingested, understood, and manipulated, and where some specific standards promote integration and interoperability.
Need help converting HTML documents to PDF? This reference guide shows by example how to use XSLT templates to convert 45 commonly used HTML elements to formatting objects (from the XSL-FO vocabulary) for easy transformation to PDF using XSLT. The examples assume that you're using the Java-based XSLT processor Xalan and the Apache XML Project's FOP tool, but most of the methods would work just as well with other tools.
Managers regularly provide auditors with supporting documentation. In a paper-based office, this can become an inconvenient and difficult task. Explore how XML, together with PHP and image functions, assists in the auditing process and also provides efficient and comprehensive indexing support to multiple managers.
Many developers these days inherit legacy projects, littered with spaghetti code and poor design. The initial task is often to write unit tests and refactor, but how does one get started with writing unit tests with code clearly designed not to? Examine several anti-patterns of testable PHP code, and how to refactor and enable the code to be easily tested.
XML is used in many areas ranging from e-commerce and news feeds to search engines. Some of the technologies associated with XML include XSLT, XPath, and XPointer. Increased use of XML emphasizes the need to be aware of its tools and the functionalities that they provide. XML processing includes formatting, parsing, editing, validating, and converting to other forms. Most of the XML tools on the market provide a multitude of functionalities. In this article, explore the various categories of XML tools with suitable examples from different vendors.
Examine the use and function of XML in data mining. Get tips and techniques that use XML for pattern matching, change detection, search and similarity detection, data annotation, and semantics.
Experiment with using XPath in the five tips in this article. Discover surprising facts about binary logic, and learn how the XPath position() function's value changes depending on its context. Another tip shows how to use XPath to select the first element of a given name. Finally, learn how to debug one of the most common and difficult defects.
Wikipedia is the ultimate online encyclopedia, containing millions of entries on different aspects of human knowledge. Web application developers are able to access and search these entries through the Wikipedia API. This article introduces the Wikipedia API and demonstrates it in the context of a PHP application, explaining how to search and retrieve different elements of Wikipedia content with PHP.
Erlang is a multi-purpose programming language that is primarily used for developing concurrent and distributed systems. Learn some of the advanced features and functionality, starting with basic functions and moving on to concurrent programming, processes, and messaging. These work together to support distributed programming, a powerful feature of Erlang.
Until recently, tools for managing controlled vocabularies, taxonomies, and thesauri all stored their data using proprietary formats that made the data difficult to integrate with external systems. The W3C SKOS standard defines a portable, flexible controlled vocabulary format that is increasingly popular, with the added benefit of a good entry-level step toward the use of Semantic Web technology.
Erlang is a multi-purpose programming language used primarily for developing concurrent and distributed systems. Released as open source in 1998, Erlang has become more popular in recent years thanks to its use in high profile projects, such as the Facebook chat system, and in innovative open source projects, such as the CouchDB document-oriented database management system. In this article, you will learn about Erlang, and how its functional programming style compares with other programming paradigms such as imperative, procedural and object-oriented programming.
Many web developers consider security a low priority. Security is frequently relegated to the end of the software development life cycle, as little more than an afterthought. Sometimes, software security is neglected entirely, resulting in applications rife with common vulnerabilities. Because such bugs might manifest only under conditions present during an attack, they can be hard to detect prior to such events without knowledge of how the exploitation process works. Using a web application built with jQuery Mobile, PHP, and MySQL, this tutorial shows how many types of vulnerabilities occur along with common methods of exploitation and, most importantly, their respective countermeasures.
With the introduction of SugarCRM 5.5, the entire web services framework was invigorated not only to add REST support to complement the existing SOAP support, but also to enable developers to customize the web services in an upgrade-safe way to help support their business applications with ease. Out of the box, the SugarCRM REST web service supports using JSON and serialized PHP data as data formats for interacting with these web services. In this article, you can see how easy it is to add XML as another option to send and receive data with your SugarCRM instance.
Explore how to combine requirement gathering with documentation that development managers, developers, testers, and technical writers can re-purpose throughout the development cycle. The flexible extension mechanism in Darwin Information Typing Architecture (DITA) is becoming an industry standard for this kind of undertaking. In this article, you create a specialized schema for use case documentation.
Add PHP to an advanced export function in Microsoft Excel to create a flexible pivot table in XML format. Then, you and users can sort and analyze the data in the pivot table on the fly.
The IBM WebSphere Application Server 7.0 Feature Pack for XML 1.0.0.9 Technology Preview offers some major new features, including support for XQuery modules, embedded extension functions, and source location information for runtime errors. These features help developers manage and work with queries and stylesheets, thus improving developer efficiency and reducing maintenance costs.
In the competitive world of software development, it's important to stand above the crowd. Thus there is a need for some standard for measuring how much one knows about XML. IBM offers its own certification program for XML and related technologies, and this article by Pradeep Chopra, cofounder of WHIZlabs Software, shows you some strategies for tackling this exam: Useful pointers, resources, and sample test questions can help get you started on the road to certification success!
On-the-go professionals need access to a consistent and reliable list of contacts on whatever phone they have in hand. Using the example of a MySQL database providing data for a desktop SIP phone and a smart phone, learn to use PHP to output customized XML from the same root database to suit a desktop phone or a smart phone, or both devices simultaneously.
lxml is a fast yet flexible library for XML processing in Python. It comes bundled with support for XML Path Language (XPath) and Extensible Stylesheet Language Transformation (XSLT), and it implements the familiar ElementTree API. In this article, you focus both on the ease of use provided by lxml and on its high-performance profile when processing very large XML data.
Part 1 of this series introduced the concept of the assembly, a series of steps that perform enrichments and transformations on hierarchical data in InfoSphere DataStage. Part 2 provides a deeper understanding of assembly concepts. Among other ideas, the article describes the assembly data model, the principles of the mappings table, and the use of XSLT within the assembly. In addition, it provides performance guidelines for some complex scenarios.
With the expanding growth of semi-structured and unstructured data (XML) comes the need to categorize and classify content to make querying easier, faster, and more relevant. In this article, try several techniques using XQuery to automatically tag XML documents with content categorization based on the analysis of their content and structure.
Learn how to use the XML stage in IBM InfoSphere DataStage 8.5. This article provides step-by-step instructions for importing XML schemas into the Schema Library Manager, parsing XML files, composing XML documents, and writing them into DB2 pureXML.
Work through the entire process of building a database access wrapper in PHP for the back end and connecting it to a JavaScript access wrapper at the user interface layer in this article.
Scalable Vector Graphics (SVG) browsers are becoming mainstream now, and they can be used in many powerful ways. Continuing on from David's earlier SVG column, Dethe looks at some of the ways that declarative markup can replace script for animation and other common scripting tasks. In the process, he briefly looks at replacing script with declarative markup in other XML dialects. Moving common scripting tasks into declarative markup can eliminate the need for tedious boilerplate code, reduce errors, and make your script's intent easier to follow, freeing you to focus on your code's unique aspects.
The oEmbed specification offers a way to display embedded representations of content from third-party content sharing sites in a web page. This article introduces the oEmbed API and demonstrates it in the context of a PHP application, explaining how you can use it to embed content from popular sites like Flickr, YouTube, Slideshare, Wikipedia, and others.
jQuery powers many of the sites on the Internet today, providing dynamic user experience in the browser and helping to make traditional desktop applications increasingly rare. Now that browsers found on the major mobile platforms have caught up to desktop browser functionality, the jQuery team has introduced jQuery Mobile, or JQM. The mission of JQM is to bring a universal experience to all major mobile browsers, enabling rich content across the Internet, regardless of the viewing device. This tutorial examines fundamental design concepts around jQuery Mobile in the context of a sales force automation-oriented application. You create an intuitive and visually appealing mobile web application that interacts with an Internet-hosted website to store and manage sales opportunities.
Traditionally, healthcare implementation projects use W3C XML Schema Definitions (XSDs) to define the Health Level Seven (HL7) messaging standard. By extending these schemas using the OASIS Content Assembly Mechanism (CAM), generating conformance messages becomes quicker and more reliable. The CAMProcessor, which is part of the jCAM open source project, makes this process of extension easy, so you can focus more business effort on the business rules underlying the HL7 schemas.
EXPath is a community-driven effort whose goal is to define common extensions for XML technologies, making it easier for developers to create portable applications using well-defined function libraries. The EXPath HTTP Client module defines a set of functions that enable the sending of HTTP and HTTPS requests. Learn to use this library to interact with HTTP from both XSLT and XQuery, and find out how to test HTTP requests using a primitive HTTP tester utility built with XQuery and the EXPath HTTP Client module.
The image parameters of an IBM Cloud image can be retrieved through a URL called "manifest" that is provided by the image description. The URL returns an XML response. In this article, the author explains how to transform that XML response into a Java-usable response by creating Plain Old Java Objects (POJOs) and calling JAXB's unmarshal method -- once you have this response, it will be easy for you to send requests to create new instances based on images that request parameters from Java classes.
Academic and corporate clients seeking digital journals or other types of web publications regularly require platforms that support standards-based XML. This tutorial explains how to customize a Drupal implementation to develop publications that enable editors, authors, and users to submit and edit content in standards-based XML, where the standard can be enforced using server-side validation settings. For illustrative purposes, the discussion references TEI XML, the markup standard in widespread use in academia.
Did you know that you can use jQuery's fast and powerful DOM traversal and manipulation methods to process any XML file? This ability, combined with jQuery's ability to easily load XML files using Ajax, makes this JavaScript library a great choice for building dynamic, XML-based UI applications. In this tutorial, take a closer look at the specifics of this approach and explore its benefits and caveats. Along the way, you get an overview of DOM processing in the browser and discover how useful jQuery's methods can prove when you parse XML. The tutorial also outlines the basic steps in the development of a generic, browser-based live XML editor using the covered techniques.
In this article, explore how XML lends structure to the storage of data relating to a resume. Using elements from the HR-XML and Open Applications Group Integration Specification (OAGIS) projects, build data and stylesheet files to generate an example resume as a PDF file using Apache Formatting Objects Processor (FOP). Particular points of interest include handling multiple namespaces and hints about how to add decoration to the basic PDF through the stylesheet.
XML documents created for authoring projects such as help systems, maintenance documentation, and wikis tend to be complex and heavily dependent on inter- and intra-document linking. In this practical guide, create lightweight utilities that help you automate repetitive XML document-creation tasks.
Universities and research institutions use open repositories to make research output available to a worldwide audience. This article introduces some of the standards and describes the technical challenges relating to collecting, storing, preserving, transferring, and providing access to open repositories.
Often when people create a vocabulary to describe a problem-space, they find themselves using a taxonomy that divides the problem-space using three levels. For example, in a financial application, a ledger record might be identified categorically (debit or credit) and then broken down within these categories by type and subtype (for instance, "interest accrued due to prior underpayment" might be broken into a triple of credit/interest/underpayment). You can model this sort of structure in XML in a number of ways depending on the requirements of the data, and you can enforce this modeling using a variety of different schema approaches. I describe two schema approaches: W3C XML Schema Definition (XSD) and Organization for the Advancement of Structured Information Standards (OASIS) Content Assembly Mechanism (CAM).
To start coding an XSLT can be intimidating, but if you can answer two simple questions, you are well on your way. With the simple approach this tip presents and about 10 minutes, you can have a much clearer understanding of the fundamentals of transformations.
Genericode -- an OASIS specification -- is an XML vocabulary for encoding code lists or authority lists in XML. These lists are usually developed and maintained by business users who are familiar with Microsoft Office solutions but are not proficient in XML technologies. In this article, gain insight into using Microsoft Office Excel 2007 spreadsheets to create and maintain code lists, then use XSLT to convert the spreadsheets to compliant Genericode that applications such as online forms can easily consume.
This is the second in a series of articles discussing technical standards used in education. This article looks at standards used today and their impact on the learning and teaching processes in schools and businesses. The most commonly used standards in education are content packaging standards such as SCORM, IMS CP, and Common Cartridge, which are all covered in this article.
In this article, work through the entire process of building an iPhone chat application from the server all the way to the user interface on the front end.
XHTML isn't just well-formed HTML: Certain tags must be properly closed. Improperly closed tags are valid XML, but browsers might incorrectly parse them, causing problems with dynamic Web 2.0 features. Whether transforming XML to XHTML or just filtering XHTML, discover the XSLT templates you need to create correct XHTML that follows W3C-recommended practices for XHTML.
You can incorporate Facebook functionality into your own applications. From the mobile perspective, the Facebook Platform supports APIs for mobile web applications, and mobile SDKs for native mobile applications for the iPhone, iPad, and Android platforms. In this article, explore the Facebook Platform APIs and the Facebook SDK for Android, the SDK released by the Facebook mobile team.
Google Spreadsheets is a well-known cloud-based spreadsheet application. Web application developers are able to access and search data from online spreadsheets through the Google Spreadsheets Data API. This article introduces the Google Spreadsheets Data API and demonstrates it in the context of a PHP application, explaining how to search and retrieve different elements of spreadsheet content.
Google Spreadsheets is a well-known cloud-based spreadsheet application. Web application developers are able to access and search data from online spreadsheets through the Google Spreadsheets Data API. This article introduces the Google Spreadsheets Data API and demonstrates it in the context of a PHP application, explaining how to add, modify, and delete different elements of spreadsheet content.
Learn to build a charting widget with a very rich customizable presentation where both the charting data and presentation customization are specified in XML. Then learn how to use the data mashup editor from the IBM Mashup Center to generate the XML for such a widget. Finally, build a sample mashup in which the presentation elements vary dynamically with the data.
XML is a powerful technology, but it can be misused. In this article, dive into 10 rules, basic dos and don'ts, that you can follow to use XML the best way possible.
Read about code lists in XML business documents including the implementation details of UBL code lists and the creation and customization of both internationally and locally controlled code lists.
If you can't find a validating XML editor you like, or prefer not to take the time now to learn how to use one, you can edit the XML for your developerWorks articles and tutorials using your preferred text editor. Ian Shields has created some great tools to help you validate, transform, and preview your article or tutorial. This article shows you how easy it is to use those tools on Microsoft Windows or Linux.
This article provides guidance to database users in choosing XML tools to help them with the new responsibilities that arise now that IBM DB2 can efficiently store and manipulate XML data with pureXML. The size of XML, which can vary from a few kilobytes (KB) to many megabytes (MB) per document instance, and the hierarchical structure creates the need for new tool capabilities to ease the tasks of creating, viewing, editing, and querying XML instances and schemas when using DB2 pureXML. This article reviews the XML capabilities in tools available from IBM for working with XML database objects, the different job roles that are impacted by having XML in the database, and the specific tasks involved. It then describes the key XML-related tasks that arise and outlines which tools provide capabilities to help with those tasks.
The Yahoo! Query Language (YQL) provides a unified interface to multiple third-party web services, allowing you to search, add, update, and delete data through a simple, SQL-like syntax. Combine powerful XML processing tools in PHP with YQL and you can easily add data from online services to a web application quickly, efficiently, and without wading through pages of API documentation.
Traditional medical record systems are failing to keep up with the increasing demands in healthcare. In this article, we explore the current challenges with traditional, paper-based medical record systems. Using OpenEMR as an example, you will see how modern Electronic Medical Record (EMR) systems fix the problems.
The ability to store data locally on the mobile device is a critical function for mobile applications that are required to maintain essential information across application-executions or the lifetime of the application. As a developer, you constantly need to store information such as user preferences or application configurations. You must also decide if you need to tap internal or external storage, depending on characteristics, such as access visibility, or if you need to handle more complex, structured types of data. Follow along in this article to learn about Android data storage APIs, specifically the preferences, SQLite, and the internal and external memory APIs.
The Yahoo! Query Language (YQL) provides a unified interface to multiple third-party web services, allowing you to search, add, update, and delete data through a simple, SQL-like syntax. Combine with the powerful XML processing tools in PHP with YQL to easily add data from online services to a web application quickly, efficiently, and without wading through pages of API documentation.
When you develop Android applications, you must deal with a number of security-related aspects, including application processes and sandboxes, code and data sharing, system protection through application signing, and permissions use. Highlight these aspects of security in Android application development as you work with sample code.
The OASIS Universal Business Language (UBL) is an XML-based technology used for messages and transactions between businesses. In this article, we will examine UBL to illustrate its usefulness, and explore how emerging UBL services can be a disruptive innovation.
Build "instant" style features into your web site with a combination of jQuery, XML, and PHP. You can pick up and use the code that you find in this article as you wish.
A variety of plain-text, application-specific formats exists for the definition of non-natural language grammars for the preparation of a voice recognition model. Programmers can use the Speech Recognition Grammar Specification (SRGS) not only to express many of these formats in an open-standards structure, but also to define rules for the dialog manager necessary for interpretation of the output generated by the recognition model. Explore SRGS and Semantic Interpretation for Speech Recognition (SISR)-like methods using PHP in the context of non-natural language-specific grammars in this article.
This article is the second part of a series of articles. The first article focused on augmenting CICS(R) Web services with two general purpose routines (pipeline handlers) that support two scenarios to store and retrieve XML in DB2(R) pureXML. This second part introduces two more scenarios: a service request scenario and a service response scenario. The service request scenario shows how a custom pipeline handler can be introduced to further enhance CICS Web services to store XML data in relational form or in XML form after extracting the XML that represents the business data from the SOAP message. The service response scenario shows how a custom pipeline handler can be introduced to publish relational data as XML, and how XML data can be modified directly through SQL before returning the data in a service response. This article also illustrates how stored XML data can be accessed as relational data through a view for easy placement in a CICS COMMAREA or container. Some sample COBOL source code is included in the Downloads section.
Paired with a validating XML editor, Darwin Information Typing Architecture (DITA) provides a useful tool for developing topic-based user documentation that describes how to use your application. With a bit of forethought and planning, you can repurpose these same topics into documents that provide value much earlier in the development process, such as walk-through scripts for use in client demos or acceptance scripts for a manual quality assurance effort.