Frank Sommers is founder and president of Autospaces. In that capacity, he is directly responsible for all aspects of the company's business and technical outcomes.
Prior to Autospaces, Sommers was vice president of technology and chief software architect at a Los Angeles system integration firm. Sommers was also a research fellow at the Center for Multiethnic and Transnational Studies at the University of Southern California, where he participated in a geographic information systems (GIS) project mapping the ethnic populations of the world and the diverse demography of southern California.
Sommers is an active writer in the area of information technology and computing. His main interests are parallel and distributed computing, data management, programming languages, cluster and grid computing, the theoretic foundations of computation, open-source software, and online user communities.
Sommers currently serves as member of the executive committee of the IEEE Technical Committee on Scalable Computing, and is responsible for that organization's online activities. He is also Editor-in-Chief for Artima Developer, a portal focusing on enterprise software development. In the past, he was a columnist for Javaworld, where he wrote about Jini Network Technology and Web services.
Sommers is also active in the Jini Community as an elected member of that community's Technical Oversight Committee. For his technical contributions to the Java community, Sommers was named a Java Champion by Sun Microsystems. Sommers is a member of the Association for Computing Machinery, the IEEE Computer Society, and the American Musicological Society.
fsommers at autospaces dot com
PO Box 934
Montrose, CA 91021
Frank Sommers' Artima.com blog focuses on technology and software development:
IEEE Scalable Computing
Editor, January 2002 to present
IEEE Scalable Computing is an online publication of the IEEE Computer Society's Technical Committee on Scalable Computing (TCSC), and is dedicated to furthering cluster and grid computing research and practice.
Artima Developer is a portal for software developers "who care about their craft." Artima publishes, among other things, Leading-Edge Java, a magazine dedicated to new developments in the Java programming environment.
Cluster Computing, Grids, Data Management
IEEE Scalable Computing, February, 2006
(Reprinted from Artima Developer)
The promise of a desktop environment accessible from anywhere on the Internet has been as alluring as it has been evasive. While many tools aim to provide network access to a single desktop computer, the desktop as a network service has yet to materialize. This article looks at a grid-based solution that may change that status quo. The article is based on an empirical study of the bandwidth utilization of Sun's Sun Ray thin client device in a wide-area deployment over a broadband network. The study includes typical use-patterns of an office desktop user, and concludes that while the Sun Ray consumes at most 20% of available bandwidth, network latency is still significant. Such latency, however, can be reduced by placing additional computing demands on the server-side of the thin-client architecture, a task amenable to grid-based distribution and scaling.
With Rajkumar Buyya, Chee Shin Yeo, Hossein Pourreza, Rasit Eskicioglu, and Peter Graham.
In Handbook of Nature-Inspired and Innovative Computing: Integrating Classical Models with Emerging Technologies, ed. Albert Zomaya. Springer Verlag, 2006
This comprehensive handbook, the first of its kind to address the connection between nature-inspired and traditional computational paradigms, is a repository of case studies dealing with different problems in computing and solutions to these problems based on nature-inspired paradigms.
With Shahram Ghandeharizadeh and K. Joshier and E. Alwagait.
2nd International Workshop on Multimedia Data Document Engineering (MDDE'02), March 24 2002, Prague, Czech Republic)
An electronic document may provide more information than its paper-based counterpart. For example, in addition to text and images, a scientific document may consist of either the raw data or software that substantiates its hypothesis, ontology of its terms, a detailed comparison with its related work, etc. In this study, we explore: a) an environment that represents a document as a Web Service, and b) two alternative frameworks that facilitate discovery and retrieval of documents, namely, Jini and UDDI. We describe how each framework supports documents that reside on a cluster of nodes. These nodes might be dispersed across the Internet or in geographical proximity using an Intranet setting. In addition to detailing discovery and retrieval of documents, we describe how each framework supports data availability in the presence of load imbalance and node failures. One finding of this study is that these two frameworks are complementary and can be used in conjunction with one another.
With Shahram Ghandeharizadeh and Shan Gao
3rd IEEE International Conference on Cluster Computing, Newport Beach, California, October 8-11, 2001)
This paper describes a middleware that enables its target application to dynamically incorporate heterogeneous nodes of a cluster. It distributes the objects of the application across the nodes with the objective to evenly distribute system load. As such, it eliminates the need for a system administrator to control the placement of data. We describe the architecture of the middleware that facilitates object migration and its decision making components. One aspect of this architecture is a negotiation protocol to facilitate migration of objects from one node to another. Finally, we describe an implementation of this middleware using Java and Sun s Jini framework.
Tutorial outline (November, 2000)
This is a 3-page summary of a tutorial I wrote up on mobile transaction management. Here's an overview: This tutorial offers an overview of recent research into applying the transaction concept to mobile information systems. The tutorial first describes the mobile computing environment, and outlines the special challenges this environment presents to data management. It then offers a framework for mobile transactions. The main part of the tutorial reviews the major proposed mobile transaction models. Using the framework introduced above, it compares transaction models based on the types of mobile information systems they are suited for, their adherence to the ACID requirements, execution cost in terms of number of transaction messages used, performance characteristics, and implementation requirements (what additions they require to existing transaction processing systems). The concluding section provides a sampling of existing applications using mobile transactions, and the applicability of mobile transactions to current trends in distributed application frameworks, such as Jini and WAP.
With Shahram Ghandeharizadeh.
Published in Handbook of Data Mining and Knowledge Discovery.
Edited by Willi Klosgen and Jan Zytkow. Oxford University Press, 2001.
Parallel databases based on the shared-nothing architecture are ideally suited for the increasingly demanding data management needs of enterprise decision support systems. In an ideal parallel system, twice as many nodes can perform twice as large a task in the same time, resulting in linear scale-up; or, twice as many nodes can perform the same task twice as quickly, resulting in linear speed-up. Round-robin, hash, range, hybrid, and other declustering techniques ensure that the needed data is available at each node for processing, and thus help approximate the ideal scalability characteristics. Parallelism can be applied to each of the relational operators. For the select operator, inter-query parallelism executes several relational queries simultaneously; inter-operator parallelism executes several
operations within the same query simultaneously; and intra-operator parallelism is employed to each operator within a query.
With Shahram Ghandeharizadeh.
10th International Conference on Database and Expert Systems Applications (DEXA 99),
Florence, Italy, August-Sept., 1999
At the time of this writing, the electronic commerce market place is dominated by business-to-business transactions. This paper describes one such application and our software prototype in support of this application. Our main contribution is a software solutions (using Java) that employs the concept of deltas to maintain consistency in a replicated, distributed environment. Our proposed solution strives to be independent of the schema of the business objects in order to enhance its portability across different applications.
Artima Developer, May, 2005
This short tutorial on writing a Java Web service with the next-generation JAX-RPC 2.0 API demonstrates how Java annotations simplify Web service development.
Artima Developer, May, 2005
The Java API for XML-based RPC (JAX-RPC) 2.0, currently in early draft review in the JCP as JSR 224, promises to vastly simplify RPC-based Web service development. This article reviews key JAX-RPC 2.0 features, and highlights how taking advantage of recent additions to Java make JAX-RPC 2.0 a more flexible API.
Javaworld, September, 2003
Developers rightly criticize SOAP (Simple Object Access Protocol) for being overly complex. At heart, however, SOAP is only an XML message format, and its complexity relates more with how we put SOAP to use. In its simplest form, SOAP can exchange structured messages between a Web service and its clients. Since SOAP messages are not limited to XML data and can also include binary content, sending and receiving SOAP messages represents a simple way to exchange information across the Web. In this article, Frank Sommers shows how the SOAP with Attachments API for Java (SAAJ) 1.2 supports creating, parsing, and sending SOAP messages with binary content.
Javaworld, June, 2003
The latest J2EE (Java 2 Platform, Enterprise Edition) specification, version 1.4, makes Web services a core part of the Java enterprise platform. A set of JSRs (Java Specification Requests) in the Java Community Process define
how J2EE components can become Web services, how existing enterprise Java applications can invoke Web services, and adds new interoperability requirements for J2EE containers. This article reviews J2EE 1.4's new client and server programming models for Web services.
Javaworld, March, 2003
Prompting a user to separately log into closely affiliated Websites creates an awkward user experience. Web services that rely on one another may not even permit separate logins since they must operate without human intervention. The Liberty Alliance Project specifications provide a single sign-on mechanism for both Websites and Web services. This article explores how Liberty helps federate a user's identities from different service providers and uses that federated network identity to authenticate a user to many Web-accessible services. The article concludes with an example of how two Websites can use single sign-on.
Javaworld, December, 2002
This article presents a programming model for publishing and discovering Web services based on service interfaces. It starts by defining reusable WSDL (Web Services Description Language) interface documents and shows how to register those interfaces as UDDI (Universal Description, Discovery, and Integration) tModels using the Java API for XML Registries (JAXR). Then the article focuses on how Web service clients use well-known tModels to discover and invoke services that adhere to a set of interfaces.
Javaworld, September, 2002
The Web Service Description Language (WSDL) provides an XML grammar for defining and advertising a Web service, including a service's type. This article gives an overview of how to describe a Web service with WSDL. The article explains how to use Apache Axis tools to create WSDL from Java interfaces and Java classes from WSDL documents. It also shows how to programmatically interact with WSDL based on emerging Java APIs for WSDL (JWSDL) and how to dynamically invoke Web services using IBM's reference JWSDL implementation.
Javaworld, May, 2002
Learn how you can describe and advertise your Web service so that others can find it, and how you can locate services on the Web in this second installment of our Web Services column. Frank Sommers takes an in-depth look at the Java API for XML Registries (JAXR) and its existing reference implementation, which ships with Sun Microsystems' Java Web Services Developer Pack (JWSDP). JAXR provides an API to register with and search a variety of standards-based Web service registries.
Javaworld, January, 2002
An introductory article on Web services. It defines Web services, explains how they operate, and compares them to related Java technologies. It also presents a general programming model for Web services, independent of any framework or technology.
Jini and JXTA
Leading-Edge Java, January, 2006
Clustering emerged in recent years as the most important system architecture supporting highly available and scalable systems. This article, part of Artima's ongoing Innovative Architectures series, describes how Jini technology lays the foundation for dynamic clustering, while also reducing ongoing cluster maintenance and system administration.
Javaworld, December, 2003
Remote Method Invocation (RMI) has become a standard communication mechanism between remote Java objects. In spite of that popularity, the lack of a robust security framework has hindered RMI's acceptance for wide-area distributed computing. The latest RMI framework, Jini Extensible Remote Invocation (JERI), introduced as part of the Jini 2.0 release, features a powerful, highly configurable RMI security mechanism. This article presents an extensible RMI overview and demonstrates JERI's configuration features.
Javaworld, May, 2003
Security for distributed systems based on mobile Java code is the theme of Sun Microsystems' new Jini Starter Kit, JSK 2.0. JSK 2.0 incorporates three new specifications: a new programming model and infrastructure for Jini services, a new implementation of Java RMI (Remote Method Invocation), and several changes to existing Jini tools and utilities. This article introduces JSK 2.0's security-related features.
Three chapters in Java P2P Unleashed: With JXTA, Web Services, XML, Jini, JavaSpaces, and J2EE.
Edited by Robert Flenner. Chicago, Sams Publishing, September, 2002.
The tree chapters in this book provide a tutorial on JXTA. They contrast JXTA with other peer-to-peer and distributed computing technologies, and offer a complete example of constructing a grid application with JXTA. The following describes the book:
Java P2P Unleashed provides a single source for Javadevelopers who want to develop P2P systems. The book explains the benefits of each technology and shows how to fit the P2P "pieces" together - both in building new systems and integrating with existing ones.starts with a discussion of the P2P architecture, referencing similarities with existing, familiar systems while previewing several types of P2P applications. It explains how to plan ahead for security, routing, performance and other issues when developing a P2P application. Each technology included in the book - JXTA, Jini, JavaSpaces, J2EE, Web services - is approached from a P2P perspective, focusing on implementation concerns Java developers will face while using them. The last section includes several large-scale examples of different P2P applications - managing content, building communities, integrating services, routing messages, and using intelligent agents to gather information. The final chapter looks ahead to future developments in Java P2P technologies.
Javaworld, August, 2002
Frank Sommers talks with Sun Microsystems' Fellow and Chief Engineer Rob Gingell. In Part 1 of this interview, Gingell discusses the role of Jini in Sun's new software organization; the relationship between Jini, Web services, and the Sun ONE (Open Network Environment) initiative; and the rationale for document-centered Web services versus mobile object systems.
Javaworld, August, 2002
Sun Microsystems Fellow and Chief Engineer Rob Gingell compares the ability of Web services and Jini to deal with network failure and system change. He also discusses polyarchic systems, intellectual property, the JDK's role in relation to Jini, and Liberty Alliance.
Javaworld, August, 2002
This is an essay on why Jini is so important for service-oriented framework. The article compares mobile data, mobile code, and mobile objects, and argues that truly distributed systems should be based on mobile objects. The article also gives a brief review of Jini's progress, and a few examples of real-life Jini applications.
Javaworld, November, 2001
Frank Sommers and Bill Venners recently caught up with Jini architect Jim Waldo at JavaWorld's San Francisco office. In this interview, Waldo talks about the impact of mobility on distributed systems, Jini as a tool to reengineer the corporate MIS infrastructure, the importance of type systems, and the semantic Web.
Javaworld, October, 2001
The Jini Transaction Specification defines a transaction coordinator for the two-phase commit (2PC) protocol, as well as a default transaction semantics guaranteeing ACID properties. This article explains the default transaction semantics based on the two-phase locking (2PL) protocol, and offers guidelines for its implementation in services based on activatable RMI objects
Javaworld, July, 2001)
Since no network functions reliably all the time, developers need methodologies and tools to construct systems that remain dependable despite intermittent network failures. This article argues that developers should distinguish between the systems themselves and the computations they wish to perform on them, as the two might have different characteristics of reliability. While a distributed system, or parts of it, might fail occasionally, you can still make the computations performed on those systems highly dependable. The article describes transactions as a programming tool used to design reliable computations, and shows how multiple Jini services can dependably cooperate via transactions.
Javaworld, April, 2001
In the near future, all information capable of digital capture will be recorded, and made available via the Web in the form of active, persistent objects. The primary consumers of this information will be machines (software), which will let people intelligently use increasingly larger portions of that vast resource. This will motivate the industry to develop dependable methods of software-to-software interaction on the network, where unreliable components will be eliminated automatically, resulting in the survival of the fittest services. This article is the first in a three-part series on designing and deploying highly dependable Jini services.
Javaworld, January, 2001
The more capable a software package, the more installation
and configuration it typically requires. Jini promises to reverse this trend by locating objects on the network based on their functionality or object type, and then letting clients download the objects and code needed to interface with these services. This article provides background to the use of mobile objects in Jini, and describes the Java class loading and object serialization architectures that make mobile code possible. It then offers a tutorial on setting up Jini services so that you can make your code available for download by clients.
Javaworld, October, 2000
This article concentrates on the consequences of activation in the Jini context and discuss some useful patterns of use. The article expound on the issue of deactivating objects, then consider the implications of deactivation for well-designed Jini services and how the Jini helper services introduced in the 1.1 beta version of the JSK can contribute.
Javaworld, September, 2000
Jini services must be long-lived and resilient, and must efficiently manage their computational resources with little user intervention. Jini service developers can use the RMI activation framework to accomplish these goals. Activatable services manage computational resources by deactivating when not in use and reactivating upon client access. In addition, activatable objects maintain persistent references over service restarts. This article shows how to use RMI activation to manage computational resources and increase the availability of Jini services.
2001 JavaOne Conference, San Francisco, June 4-8, 2001
Sophisticated Jini techonology-based applications rely on the interaction of several services in support of a process. For instance, a Jini technology-based service providing hotel reservations might need to take advantage of a credit card processing service and services from hotels that indicate room availability and allow bookings.
Distributed operations and method calls typically provide a "maybe once" guarantee: An operation, such as debiting a credit card or entering a room reservation, may be performed one or more times, or it may not be performed at all, given network and other failures. Making remote method calls idempotent allows a service to offer an "at most once" guarantee: The operation will be performed at most once, or not at all in the presence of failure. However, for many Jini technology-based services, often an "exactly once" guarantee is required: When a user decides to reserve a hotel room, the credit card service must charge his or her card, the hotel must book a room for the customer, and he or she must receive a confirmation number. These operations must be grouped together; either all of them must be performed exactly once, or none of them should be performed at all.
Transactions simplify the understanding and implementation of "exactly once" guarantees. They do so by grouping operations together, and transferring control over these operations to the transaction. Transaction-oriented programming considers transactions to be the primary units of computation in a distributed system.
The first part of this talk focuses on the Jini Transaction Service API, which is a transaction coordinator for the two-phase commit protocol. The coordinator leaves it up to the participant Jini technology-enabled services to implement the requirements for ACID operations. The second part of the talk describes how Jini technology-enabled services can meet these requirements: It offers techniques for logging and recovery mechanisms, managing transaction locks, taking advantage of leasing and distributed events to break down deadlocks, detecting and handling orphan transactions. The instructor also discusses the use of pairs of services to provide redundancy. The conclusion focuses on the integration of other transaction mechanisms from the Java platform into Jini technology-based transactions, such as the Java Transaction API, the Java Transaction Service API and Java database connectivity (JDBC).
Javaworld, December, 2000
Frank Sommers caught up with Jim Waldo, Jini architect and Sun Microsystems Distinguished Engineer, via telephone. In this interview, Waldo discusses the Jini 1.1 release and Jini's role in enterprise systems, offers advice on introducing business-specific APIs into Jini, and gives insight into scaling Jini down to the smallest devices and up to worldwide networks.
2000 JavaOne Conference, San Francisco, June 6-9, 2000)
While most enterprise software technologies focus on the needs of larger businesses, the fastest growing sector in the business software market is the small and medium businesses. This very large segment of the market must take advantage of increases in productivity to stay competitive, and yet they cannot afford the implementation and maintenance costs associated with enterprise productivity applications, such as ERP software. Typically, these small and medium businesses use standalone or LAN-based software products that serve their vertical market. However, these software packages are often outdated and incapable of keeping pace with the growing needs of the business, such as the ablity to provide access over an intranet to a remote sales force or suppliers and customers. Moreover, while large enterprises also face legacy software systems, applications designed to serve smaller and medium-sized businesses in a vertical market often have significant design and implementation deficiencies, which makes them unsuitable for integration and extension with middleware to enable e-commerce. These companies may also lack the internal expertise and resources to deploy and maintain complex client-server style applications.
However, Jini connection technology might be the answer for developers catering to the needs of this rapidly growing market. Taking two real-life examples--one from the automotive dealership business and one from the insurance claims management area--this talk will demonstrate the advantages of implementing business-specific Jini services in vertical-market application software. The presentation will highlight the common requirements of these applications and show how they can be efficiently implemented as Jini technology-based services. These areas include data management, security and user authentication, business rules, reporting, system management and maintenance, and system evolution, as well as "intranet-enabling" of specific business processes such as the ability for a remote sales force to tap into these services. The presentation will demonstrate that by implementing business software as a federation of loosely coupled services, the resulting application will be more reliable, able to meet business needs, scalable, and cost much less to maintain than software based on alternative designs.
Java, Software Development, Community Process, Open-source
Leading-Edge Java, July, 2005
The Java Data Mining API (JDM) is the first attempt to create a standard Java API to access data-mining tools from Java applications. JDM promises to bring to data mining what JDBC brought to databases, and to make data mining a new and useful part of an enterprise Java developer's tool chest. This article introduces basic data-mining concepts, and illustrates sample JDM code to model customer behavior.
Leading-Edge Java, June, 2005
The Java Content Repository API (JCR) promises to greatly simplify Java database programming. Content repositories extend databases with versioning, rich references, workspaces, extensible information models, and other features. This article reviews the JCR API and its open-source implementation, Apache Jackrabbit, from a developer's perspective.
Javaworld, November, 2002
In this two-part series, Sonali Shah and Frank Sommers look at recent changes in the Java Community Process (JCP) and ask whether the JCP helps or hinders Java's future. They also suggest how Java developers can influence Java's future.
Javaworld, January, 2003
Since its inception in 1998, the Java Community Process (JCP) has received much criticism from the developer community. JCP critics often question whether the process serves Java's advancement and whether it helps produce new Java standards effectively. Up to now, answers to those questions had as much to do with perception, though not always accurate, as with fact. For this article, Frank Sommers and Sonali Shah analyze a database of publicly available information about the first 200 Java Specification Requests (JSRs). In the process, they try to dispel a few JCP myths.