If you develop mobile applications for Windows Phone odds are you will need to integrate it with your backend services, which may be in .NET, Java or PHP. There are several points of integration including remote procedure calls, data push from Java or .NET, publish-subscribe messaging and so on. Some time ago we conducted a webinar where we discussed various integration strategies for Windows Phone applications. A recording of the webinar is now available online. The recording consists of five parts (each linked with the next one at the end of the videos). You can watch the webinar below or see it on our webinars pages (.NET webinars, Java webinars):
We have done several webinars over the past few months. The webinars are uploaded to the Midnight Coders YouTube Channel. To make it easier to navigate to the webinars and between the their parts, we added pages on our site with the links to the recorded videos. You can access these pages at:
I recently had the opportunity to explore some Windows Phone 7 (WP7) developer forums to learn about some of the issues developers face when building WP7 apps and some of the questions that came up had to do with cross-platform compatibility and market potential for the device. Obviously, mobile developers want to be assured that their application can reach the widest audience possible. One of the keys is to get as many developers as possible on-board and developing for WP7. We believe WebORB will help expand the market for WP7 applications, while helping solve the cross-platform compatibility and integration issues.
WebORB’s WP7 support means that WP7 developers can create applications with connectivity to not only .NET classes, WCF, SOAP and REST services, data and media, but also to Java POJOs, EJBs, Spring Beans, Web Services and Grails controller services, data and media. WP7 will also connect with PHP classes, when this feature is rolled into WebORB for PHP.
WebORB also comes with some fantastic productivity tools and APIs, such as:
Service browser – displays a hierarchical listing of all the deployed services categorized by the deployment type;
Code generator – creates fully reusable code, as well as, Visual Studio Windows Phone 7 project files and sample UI;
Method invocation test drive – enables service methods to be invoked directly from the WebORB console for easy testing;
Security module – access to methods, services, classes and namespaces can easily be restricted using the WebORB console;
APIs – enable functionality for doing remote method invocations and data messaging (publish/subscribe, data push, remote shared objects, media streaming).
If you’d like to learn more about WebORB’s WP7 support, join us on April 21st at 3pm (CST) for a free webinar. We’ll be demonstrating how to use WebORB’s remoting and messaging APIs and productivity tools for WP7 development and deployment. Here is a link to register for this event: https://www2.gotomeeting.com/register/810889819
The idea of Universal Mobile Connectivity™ is quickly becoming a reality as we announce our support for Android integration. Before I delve into the details, let me jump onto my soapbox for a moment…
WebORB is a powerful, client-agnostic technology enabling client/server integration at many different levels. The integration includes RPC (remote procedure calls) for a wide range of service models, publish-subscribe data messaging, video/audio recording and streaming, ultra-simple data management API/runtime and development productivity tools that actually work and help devs focus on what they do best. As the number of Android applications is growing, an army of developers are looking for ways to quickly and efficiently integrate phone-based applications with server-side technologies. For the most basic connectivity you can hear some people suggesting JSON (which we support, btw), some (even more old-school people) suggest SOAP web services or perhaps ancient-as-dinosaurs HTTP GET/POST type of integration. Will these approaches work? Sure, with enough persistence and a ton of billable hours, you can get anything to work. Will it cost a lot to develop? you bet! Will it scale? very unlikely. Will it be easy to maintain and evolve? I hardly doubt it. After all, it is 2011 and it is definitely time to realize that a well-done client/server integration is really in the heart of any successful application, whether it is an enterprise system or a silly game for a mobile device. Welcome to the 21st century, it is time to get serious about integration [Jumping off the soapbox]
Whether you are a Java developer or you build apps using Flex/AIR or Android, the topic of client-server integration is not very-well defined or prescribed. However, WebORB as a client/server integration server provides a very powerful solution for connecting Android apps (both Java and AIR) with Java, .NET and PHP backends. Android Java apps can use the APIs for RPC (remote procedure calls) and publish/subscribe messaging. The AIR clients can easily tap into WebORB hosted services, messaging destinations, media streams and data management using the standard APIs available in the Flex/AIR SDKs, including the RTMP integration.
The best way to get an idea of the capabilities WebORB provides for Android is to watch the videos linked below. It is a recording of a webinar we conducted a few weeks ago on the subject of Android and WebORB integration. Additionally, the documentation can be found at: Android and WebORB integration documentation.
A few weeks ago we conducted a webinar where I reviewed most of the new features of WebORB for Java 4.1. Now that the product is released, we’re posting the webinar recording so you can not only watch, but download and play with all the new WebORB goodness yourself. Since the webinar recording is hosted in the Midnight Coders YouTube channel, we have to split it into 15 minutes parts, hence is the breakdown below:
‘WebORB for the Cloud’ is a composite term we use to describe any flavor of our product (WebORB for .NET, Java, PHP) running in the cloud. By ‘cloud’ we mean all major cloud computing providers, including Microsoft Azure, Amazon EC2 and Google App Engine.
The benefits of cloud-based deployments are huge. You can easily scale out your infrastructure to keep up with the growing customer traffic, better control your costs and leverage the infrastructure of the cloud providers for data persistence or message queuing. However, the client/server integration problem still remains. Whether it is Flex, Flash, Silverlight, AJAX, iOS or Android clients, there is a need for mechanism to efficiently communicate with the server-side, (remotely) work with data, subscribe to receive messages from or publish messages into queues. This is where WebORB for the Cloud comes in. One of our goals for this year is to provide a universal connectivity between all major client-side environments and services hosted (through WebORB) in the cloud. Throughout the year we will be conducting online webinars to unveil new functionality, educate and inform about Cloud-based features and capabilities of our product. A recording of the first installment in that webinar series is below. The webinar focused primarily on WebORB for .NET and Microsoft Azure, with a brief overview of WebORB for Java and Google App Engine. Enjoy!
BlazeDS?! What’s that? Ok, ok, we know what it is, but mostly because a ton of people switched over from it to WebORB. What’s interesting is that WebORB for Java does not really compete with BlazeDS, since feature-wise WebORB goes above and beyond and is a direct alternative for Adobe’s LiveCycle Data Services (LCDS). However, we get the question of “how WebORB is different from BlazeDS/LCDS” quite often. A few weeks ago we conducted a webinar where we explored the major differences between the products. Below is a brief summary of the top 10 things you would not be so lucky to have if you use BlazeDS. All of these are discussed in detail in the webinar recording. Also, in case if you are not aware of it, all of these features are available at absolutely no cost with the WebORB Community Edition:
GenericDestination – Flex clients communicate with Java backend through an abstraction called “destination”. With WebORB, you can deploy any supported service type (POJO, jar, Spring bean, EJB, etc) and start invoking methods on it without any configuration changes whatsoever. That way you can go from deployment (which is as simple as copying your jar into WEB-INF/lib) to development without any intermediate steps.
Service Browser – WebORB Service Browser is a part of the management console (which is yet another differentiator altogether). The Service Browser provides a unified view for all supported service types where you can explore the contents of the deployed JARs, see the list of POJOs, Spring beans, Web services and EJBs exposed as remoting services. Using the service browser you can set security restrictions and invoke service methods directly from the console.
Code Generation – The service browser described above is also the front-end for a very powerful code generation capability. For any service shown in the service browser, WebORB can generate the client-side code for various client environments and frameworks. For example, with a single click, you can obtain all the ActionScript code formatted for the PureMVC, Cairngorm, Swiz or Mate framework. The generated code includes all the code enabling client/server invocations as well as the ActionScript value object classes corresponding to the server-side VOs. In addition to the ActionScript code, WebORB can produce code in JavaScript and Silverlight outputs.
AJAX RPC – In addition to Flex and Flash clients, WebORB also provides support for remoting invocations using JavaScript/AJAX and JSON clients. All supported server-side service types can be invoked from any JavaScript-enabled application or web page.
Silverlight RPC – WebORB supports remoting invocations from Silverlight clients in the same capacity as with Flex. The product includes a client-side Silverlight assembly which implements serialization and deserialization logic between .NET CLR and Java. The on-the-wire protocol used by Silverlight is AMF over HTTP. As a result, the serialized messages are compact and optimized to ensure fast and efficient data transmission.
Data Management – WebORB data management is a powerful system for building data-driven client-server applications. The system generates both client (ActionScript) and server (Java) code which enables full CRUD for all the tables identified in the data model. The system also includes a framework with very intuitive APIs to load database records into Flex/AIR applications as well as to create, modify or delete data in the database.
Data Paging – The Data Management system also includes support for data paging. The framework can automatically handle loading additional data (for example, when the user scrolls down the view port in a datagrid) into the data-bound UI controls.
Client Synchronization – Client synchronization allows clients operating on the same set of data to be notified when other clients make any kind of change in that data set. For example, a client can load and view records from a table. Another client could either make a change to these records or add a new one. With client synchronization, your client-side application automatically receives an event about a change. WebORB Data Management provides support for these events out of the box.
RTMP Support – WebORB includes RTMP support and offers the following features out of the box: video/audio streaming, video recording, RTMP-based data push, Remote Shared objects, broadcast, video chat, etc.
Messaging Code Generation – Messaging is a very powerful subsystem of the product. Clients from different environments (Flex, AIR, Flash, Silverlight, JavaScript and soon iOS) can use the publish/subscribe system supported by WebORB to exchange messages with the server applications or each other. To simplify the process of creating these types of applications, WebORB includes a code generator for different client types enabling publish/subscribe functionality.
The recording consists of four parts and describes the features I listed above in great detail. Enjoy!
We conducted a webinar last week on the topic of using RTMP Messaging and Streaming using WebORB for .NET. The webinar recording is now available online in the Midnight Coders YouTube Channel.
The source code for the sample projects reviewed in the webinar is available below:
Earlier today, we held a webinar with the same title as this post. You can find its content, re-recorded as a simple screencast, in two videos on YouTube: