RemObjects Software
Home | Products | Trials | Shop | Support | About |

RemObjects SDK Feature Overview

The following list provides an overview of the core features of RemObjects SDK. Please follow the individual links to read more details about these features.

Feature Highlights

Powerful Remoting Framework

At the heart of RemObjects SDK lies of course its library, which provides a vast array of options for clients and servers to communicate in efficient ways, across varying network quality levels (from the local LAN to low-reliability wide area radio networks) and between different platforms.

Different choices of network servers and clients, message formats, session data storage and other crucial elements of the overall communication strategy allow developers to combine the solution that best suits their needs, simply by selecting the appropriate components.

Advanced features such as the Push events provided by the SuperTCP and SuperHTTP channels or the extensible Message envelope infrastructure round off the system.

RAD Service Modelling with Service Builder

One of the key features of RemObjects SDK is its RAD Service Builder application, which allows you to visually define the surface area of your servers before you start writing your first line of code. In Service Builder, you can define the interfaces exposed by your services, along with any custom types you want to send back and forth between clients and servers and callback events that clients might trigger.

Service Builder also allows you to document your service interface and types, describing how they should be used or implemented.

Because the entire service definition is described in a platform- and language-agnostic way inside of Service Builder and stored in a "RODL" file, clients and servers can later be implemented using any of the supported tools and platforms, without risking wire incompatibility.

Highly Extensible Library

While RemObjects SDK comes with a wide range of communication options out of the box, we realize that it can never suit everybody's needs. Developers might need a custom communication channel, use a different message format, store session data in different ways, or otherwise apply their own touch to the communication story.

Because of this, every aspect of the RemObjects SDK class libraries has been designed with extensibility in mind, allowing you to easily extend existing classes or write your own replacement classes to give your clients or servers the flexibility you need.

For example, you might have specific encryption needs not covered by the components already provided by the SDK. Simply writing your own Message Envelope will allow you to use your own encryption system with standard RO communication.

Push Events

RemObjects SDK's high-end Super TCP and Super HTTP channels provide enhanced support for push events, allowing servers to send real-time notifications back to active clients, without requiring the client application to waste network bandwidth by polling for events.

Whether building real time communication between clients or providing notification for database changes, push events enable a more streamlined and responsive user experience, while minimizing network traffic. And with the Super HTTP channel, they will work across firewalls and NATs, like every other HTTP request.

Zero Configuration Deployment

With the new ROZeroConf infrastructure, it is now possible to build clients and servers that discover each other automatically, without the need for network admins to manually configure ports, hand out URLs or IP addresses to clients. Once deployed, clients can detect available servers on their own, provide a choice of servers to the user, or simply select one at will.

This reduces administrative overhead, and at the same time uncomplicates the user experience for client applications.

Tight Integration with Supported IDEs

RemObjects SDK integrates tightly with the Visual Studio, Delphi and Free Pascal (Lazarus) IDEs to provide the best possible development experience.

Project templates are provided to get you started writing server or client applications in no time. The Service Builder and Service Tester tools are accessible right from the IDE and integrate with your active project to design and test your server applications.

Broad Platform Support

RemObjects SDK was planned from the ground up to be cross-platform and enable communication between as many different operating systems, tool chains and devices as possible.

Not only is RemObjects SDK available in separate editions for Delphi, .NET and Mac developers - each of these editions itself provides support for a range of platforms, with .NET projects being supported on Linux and Mac OS X (in addition to, of course, Windows) through Mono, and Delphi projects being supported on Linux and 64-bit Windows through the open source Free Pascal compiler. Both Mac OS X and iPhone are supported with the new edition of RemObjects SDK for OS X.

Full wire compatibility is preserved between the different libraries and operating systems, making sure that clients and servers written using any of the editions and running on any of the supported platforms can communicate with each other, seamlessly.

Built in Session Management

RemObjects SDK includes out of the box support for user authentication (login) and session management, making it possible for servers to remember clients and preserve client-specific data without sacrificing scalability due to stateful server objects.

Pre-defined (but fully extensible and replaceable) mechanisms are in place to pass initial authentication (on first connect, but also transparently when needed), handle session timeouts, and persist the actual session data in local in-memory, database or shared storage.

Designed with Scalability in Mind

RemObjects SDK was designed from the ground up to allow for scalable applications that can cope with a wide range of load and client traffic. On its own, stateless RO servers are ready to leverage the full potential of the hardware and network they are running on, to serve as many clients as possible.

Advanced features such as the new "Olympia" server for distributed session state make it even easier to build services that scale out, across multiple machines and server farms.

General Features

  • Wide range of supported communication channels, including HTTP, TCP, Email, Named Pipes and local/single-tier. (Wiki)
  • Super TCP and New Super HTTP Communication channels for optimum performance. (Wiki)
  • Support for different messaging formats, including the proprietary but very network-efficient BinMessage, as well as open standard SOAP (Article coming soon) and XML-RPC (Wiki) formats.
  • RAD Service Builder tool for modeling and defining services.
  • Comfortable Service Tester for profiling, bench-marking and stress-testing service applications to ensure they behave well in high-load scenarios. (Wiki)
  • Support for a large variety of native and user-defined data types to be sent across the network, including custom structs, ANSI and Unicode string formats and XML.
  • Full wire compatibility between platforms, allowing you to mix clients and servers implemented with different editions of the SDK or running on different operating systems.
  • CodeGen for PHP client support, allowing users to access XML-RPC servers from PHP-implemented web sites. (Wiki)
  • CodeGen for JavaScript clients, allowing users to access JSON-based servers from website client code. (Wiki)
  • Absolutely no deployment license fees.
  • Full support for C#, Oxygene, Visual Basic .NET (.NET Edition), Delphi/Win32 and Free Pascal (Delphi Edition) and Objective-C (Xcode Edition).
  • Experimental C++ Builder support in Delphi edition (available in the full version only, as it requires the source code). Library, IDE and code generation support is functional, but no project templates or samples yet.
  • Support for creating Silverlight web clients (.NET edition).

Library Features

  • Support for a wide range of platforms, including 32-bit and 64-bit Windows, Linux, Mac OS X, iPhone and browser clients.
  • Support for a wide range of tool chains, including .NET, Silverlight, Mono, Moonlight, Delphi, Free Pascal/Lazarus and Xcode.
  • 100% native and platform-specific implementations, designed from the ground up for the individual platforms and architectures – Delphi/VCL, .NET and Cocoa, respectively.
  • Full source code provided, allowing you to make changes or apply fixes and rebuild the library, if needed.
  • Thread safe and fully object oriented architecture that was designed with statelessness and maximum scalability in mind. (Article coming soon)
  • Extensible library implementation that allows developers to add their own channels, message formats or other replaceable parts of the framework to meet user-specific needs.
  • Large and extensible set of class factories to control service-instantiation options (pooled, singleton, per-call and more). (Wiki)
  • Integrated ZLib data compression to improve message transfer on slow networks.
  • Integrated AES Encryption support on the message level.
  • Extensible Message Envelope architecture enables you to add custom encryption or other message modifications, transparent to general communication flow.
  • Support for server-to-client Push events and call-backs through Event Sinks.
  • Build standalone executables, Windows Services, Unix Daemons, or host your projects in ASP.NET (.NET Edition) or ISAPI/Apache Web Servers (Delphi).
  • Built-in security features to prevent DOS attacks and server exploits in Internet Pack for .NET. (Wiki)
  • Full support for IPv6 in Internet Pack for .NET.
  • Full support for Delphi 2009 Unicode Strings (and of course Unicode support in the .NET and Xcode Editions).

Service Builder Features

  • RAD user interface for defining services and related types in a platform-, language- and technology-agnostic manner.
  • Create and Edit Services, Event Sinks, Structs, Arrays and Enums.
  • Write documentation for your services and types right in Service Builder.
  • Generate code for a wide range of supported languages, including C#, Oxygene, Delphi, Visual Basic .NET, Objective-C, JavaScript and PHP.
  • Pluggable architecture, allowing users to extend Service Builder with custom plug-ins, including support for new languages (requires Hydra 3 or later).

IDE Integration features

  • Full integration with the supported IDEs, including Delphi and Visual Studio.
  • Extensive project templates and new project wizards.
  • Project integration of Service Builder with the IDE, allowing you to edit your service definitions within the IDE's project system.
  • Integration with Service Tester. (RO29)
  • New Welcome Page displayed after the first install to assist new users with getting acquainted with the product.

Web Services / SOAP

  • Full support for development of SOAP based Web Services.
  • Full support for consuming SOAP based Web Services provided by third parties and implemented using non-RemObjects SDK technology.
  • Support for importing WSDL service definitions from external sources for service consumption.
  • Support for the new Document/Literal and RPC/Literal encoding styles, in addition to RPC/Encoding.
  • Full support for WS-I Compliance.

 

(Note: Because RemObjects SDK for Xcode and Java concentrate on client development, they provide only a subset of the range of features available in Delphi and .NET.)