OpenGate
OpenGate is a communications platform designed to facilitate a fast development and deployment of robust wireless solutions, to be used as a M2M platform or as a mobile platform.
OpenGate acts as a data gateway between remote devices and the applications that need to send and receive information to and from those devices. Making use of a very simple interface and thanks to the Internet, GSM/GPRS and UMTS, OpenGate lowers the cost and the complexity of the implementation of wireless solutions, unifying the language of every connected device.
OpenGate has been designed to allow M2M and Mobile developers to concentrate on data exchange and data processing, instead of worrying about obtaining data in a secure and reliable way.
Middleware architecture
OpenGate implements a distributed architecture designed to provide tools and functions for the development and deployment of GSM/GPRS/UMTS based wireless solutions. This architecture presents several components:
- Client: In this level are both the M2M devices (for remote control and monitoring) and the PDAs (for application mobilization)
- OpenGate Middleware: In this level we find the OpenGate communications platform. Here OpenGate is in charge of routing in a secure and reliable way the exchanged messages between the applications and the devices.
- Application: This level hosts the applications that mean to manage the information received form the devices, and deals with databases, user interfaces, etc.
Communications
In order to provide communication services to applications and devices, OpenGate provides features like:
- Wireless Communications: GSM, GPRS, UMTS, Wi-Fi and Bluetooth. The evolution of the platform is planned for supporting ZigBee and WiMax as next wireless communication channels.
- Bandwidth optimizations: OpenGate uses a standard binary protocol for codifying the information, that minimizes the quantity of data that OpenGate puts into the wireless channels. Other communication protocols like Web Services (XML/HTTP), CORBA, or RMI make use of high bandwidth, for their big headers and redundant information. This is an important subject in pay per traffic networks.
- Backup communication channels: In the event that the main communication channels were not available (GSM/GPRS/UMTS), OpenGate has the possibility to continue sending information through other channels like SMS or trunking.
- Language unification: OpenGate allows an application to talk in the same language with many different devices, facilitating the implementation of solutions.
- Application multiplexing: OpenGate allows that more than one application communicates with a single device at the same time, therefore reducing bandwidth use and connections number.
Integration
Corporate Application Integration
OpenGate provides integration mechanisms to get devices talk with corporate (existing or new) applications. In order to allow these integration processes, OpenGate has the following mechanisms:
- APIs (Application Programming Interface): OpenGate has APIs in the most used languages in the software industry:
- Java, Java ME.
- C++ Unix.
- COM/DCOM (VBE, Delphi).
- Web Services.
- .NET Framework.
- .NET Compact Framework.
- Integrators: Using the OpenGate integrators, it's possible to integrate application without the use of programming languages:
- DataBases: Oracle, MySQL, MSSQL Server, Access, Postgres, Hypersonic.
- Queue managers: WebSphere MQ, compliant server JMS, MSMQ
Device integration
OpenGate provides different Agents, that run as pieces of software on different devices. These agents will take care of the communications with the platform, and are provided as programming libraries, in order to let developers integrate it into their embedded applications. The OpenGate agents will reduce development effort, given that all the communication features are managed by the agent, so the developer will only take care of the business logic inside the device.
Developing with OpenGate
OpenGate is an open platform that helps to integrate wireless applications using a proprietary SDK. These development tools have been designed for:
- The mobilization of already existing applications currently being used by the customer and that would like to add to the system functionalities in mobile devices (PDAs, TabletPC, etc.) and M2M.
- The creation and development of complete solutions from scratch, focused on the communication of remote elements distributed geographically, and needed of wireless communications.
In order to do this, OpenGate offers a set of APIs, Integrators and tools that are designed to facilitate the deployment tasks with the goal of reducing the development costs of the solution.
OpenGate's SDK provides several integration mechanisms:
- Communication APIs in several languages and platforms:
- Java: Java SE, Java EE, for the server side and Java SE/Java ME in the client.
- Visual Basic 60 (Only available for OpenGate versions prior to 2.X)
- .NET: For use withVisual Studio 2003, Framework v.1.1 and Compact Framework v1.0
- C++, For use with Win32, Windows CE, PocketPC and Linux.
- Java administration APIs for J2SE platform:
- Integration modules based on standard tools that allows to adapt to any scenario:
- JMS integration module
- WebServices based APIs
- Mobile APIs (GPRS connection manager, Sending/receiving SMS, NMEA managing...)
- M2M APIs for being used with on the market M2M devices (check availability list)
OpenGate has, as well, a set of tools oriented to developers:
- OpenGate communications emulator: Simulates client and server sides.
- M2M emulator: GPS/SMS/Digital IO/Analogic IO.
- Code Generators: Via XML files the messages to be exchanged can be defined.
- Database Synchronization: To use with backoffice to mobile applications.
See also
References
External links
- Opensource OpenGate Java API examples
- Information about a very interesting and curious M2M project involving pigs, GPS and GPRS, where OpenGate was used as middleware.(dead link)