Cruisers Forum
 

Go Back   Cruisers & Sailing Forums > Seamanship, Navigation & Boat Handling > OpenCPN
Cruiser Wiki Click Here to Login
Register Vendors FAQ Community Calendar Today's Posts Log in

Reply
  This discussion is proudly sponsored by:
Please support our sponsors and let them know you heard about their products on Cruisers Forums. Advertise Here
 
Thread Tools Search this Thread Rate Thread Display Modes
Old 06-12-2011, 08:32   #16
Registered User
 
sinbad7's Avatar

Join Date: Sep 2003
Location: Ubatuba,SP,Brazil (Ex Norway)
Boat: (Ex) Alu. 60' yacht-"Eight Bells"
Posts: 2,731
Images: 57
Send a message via Skype™ to sinbad7
Re: Question About the Plugin Interface

Thomas...

This sounds VERY interesting. I am particularly looking for a way to automatically import Globalstar SPOT .xml data for display in OpenCPN. See my previous # 6 and 7 threads on the subject. SPOT data must presently be 'polled' from the Globalstar database in .xml format which is not compatible with OpenCPN.

Do you have any examples of this 'middleware',price and where is it available?

I couldn't resist:

Quote:
What is Middleware
With permission of the author, the following introduction to middleware is quoted and adapted from yet unpublished work and is ©2003, Sacha Krakowiak. Sacha is Professor of Computer Science at the University Joseph Fourier, Grenoble, France, and member of ObjectWeb's College of Architects.

Motivation for Middleware
In a distributed computing system, middleware is defined as the software layer that lies between the operating system and the applications on each site of the system.

Stimulated by the growth of network-based applications, middleware technologies are taking an increasing importance. They cover a wide range of software systems, including distributed objects and components, message-oriented communication, and mobile application support.

Companies and organizations are now building enterprise-wide information systems by integrating previously independent applications, together with new developments. This integration process has to deal with legacy applications. A legacy application can only be used through its specific interface, and cannot be modified. In many cases, the cost of rewriting a legacy application would be prohibitive.

An increasing number of systems are composed of a collection of various devices interconnected by a network, where each individual device performs a function that involves both local interaction with the real world and remote interaction with other devices of the system. Examples include computer networks, telecommunication systems, uninterruptible power supply units, decentralized manufacturing units.

Users interact with Internet applications through a variety of devices, whose characteristics and performance figures span an increasingly wide range. Between a high performance PC, a smart phone, and a PDA, the variations in bandwidth, local processing power, screen capacity, ability to display color pictures, are extremely large.

Functions of Middleware
In all of the above situations, applications use intermediate software that resides on top of the operating systems and communication protocols to perform the following functions:

Hiding distribution, i.e. the fact that an application is usually made up of many interconnected parts running in distributed locations;

Hiding the heterogeneity of the various hardware components, operating systems and communication protocols;

Providing uniform, standard, high-level interfaces to the application developers and integrators, so that applications can be easily composed, reused, ported, and made to interoperate;

Supplying a set of common services to perform various general purpose functions, in order to avoid duplicating efforts and to facilitate collaboration between applications.

These intermediate software layers have come to be known under the generic name of middleware.

The role of middleware is to make application development easier, by providing common programming abstractions, by masking the heterogeneity and the distribution of the underlying hardware and operating systems, and by hiding low-level programming details.

Designing Middleware
Making software a commodity by developing an industry of reusable components was set as a goal in the early days of software engineering. While significant progress has been made, this still remains a long term challenge.

The function of middleware is to mediate interaction between the parts of an application, or between applications. Therefore architectural issues play a central role in middleware design. Architecture is concerned with the organization, overall structure, and communication patterns, both for applications and for middleware itself.

Besides architectural aspects, the main problems of middleware design are those pertaining to various aspects of distributed systems. Any middleware system relies on a communication layer that allows its different pieces to interoperate. In addition, communication is a function provided by middleware itself to applications, in which the communicating entities may take on different roles such as client-server or peer to peer. Middleware allows different interaction modes (synchronous invocations, asynchronous message passing, coordination through shared objects) embodied in different patterns.

The designers of future middleware systems face several challenges :

Middleware systems rely on interception and indirection mechanisms, which induce performance penalties. Adaptable middleware introduces additional indirections, which make the situation even worse.

As applications become more and more interconnected and interdependent, the number of objects, users and devices tends to increase. This poses the problem of the scalability of the communication and object management algorithms, and increases the complexity of administration.

Ubiquitous computing is a vision of the near future, in which an increasing number of devices embedded in various physical objects will be participating in a global information network. Mobility and dynamic reconfiguration will be dominant features, requiring permanent adaptation of the applications.

Managing large applications that are heterogeneous, widely distributed and in permanent evolution raises many questions, such as consistent observation, security, tradeoffs between autonomy and interdependence for the different subsystems, definition and implementation of resource management policies.

For complementary information, an authoritative yet older introduction to middleware can be found at http://www.sei.cmu.edu/str/descriptions/middleware.html
Tore
__________________
"And all I ask is a tall ship and a star to steer her by."
sinbad7 is offline   Reply With Quote
Old 06-12-2011, 09:29   #17
Registered User

Join Date: Dec 2011
Boat: MC-Tec, Akilaria 950
Posts: 242
Re: Question About the Plugin Interface

Hi Tore,

as I mentioned ... "professional industry" ... meaning : quite expensive !
Therfore I don't think buying is an option.

Examples are
* SAP's XI
* Oracle's PLM's (versions e5.x and e6.x) EIP (=Enterprise Integration Platform)
* xPLM : here is a link to a (german) company being specialized on that
Solutions
They're programming the middleware in Java.
* ...


But ... as I tried to explain :
It's not THAT complicated (although I stopped coding 15 years ago )
The middleware simply has to know what to do with incoming source data and how (data conversion) to distribute it to the target application (this can be easily done via an ini-file).
The goal of the data conversion is, that the target application always receives the data in a standardized format.

The connector programs within the middleware normally use API functions
to communicate with their application. But this could also be a simple batch job, performing e.g. a "select" on a SQL database ...

Thinking in openCPN, each plugin should supply a simple set of functions
to upload/export data.
Theoretrically, you could run the whole NMEA traffic from GPS/AIS,etc across that middleware process ...


Reading this whole thread with Pjotr's (and your) problems, this middleware architecture came up my mind, as it provides solutions to exactly these
type of questions ...


Thomas
tom_BigSpeedy is offline   Reply With Quote
Old 06-12-2011, 11:09   #18
Registered User
 
sinbad7's Avatar

Join Date: Sep 2003
Location: Ubatuba,SP,Brazil (Ex Norway)
Boat: (Ex) Alu. 60' yacht-"Eight Bells"
Posts: 2,731
Images: 57
Send a message via Skype™ to sinbad7
Re: Question About the Plugin Interface

Thomas..

Pramari Launches Free Open-Source RFID Middleware

Seems there are also FREE OpenSource 'middleware' software available,here is one:
Pramari Launches Free Open-Source RFID Middleware - RFID Journal

Here are the full details of the FREE RIFIDI EDGE middleware:
http://www.rifidi.org/documentation_edgeserver.html

Rifidi Comunity WIKI: http://wiki.rifidi.org/index.php/Main_Page

Tore
__________________
"And all I ask is a tall ship and a star to steer her by."
sinbad7 is offline   Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are Off
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Plugin: DashBoard SethDart OpenCPN 644 02-04-2024 16:55
BSB 4 PlugIn bdbcat OpenCPN 98 25-04-2018 18:46
Chartwork Plugin mario f OpenCPN 10 29-03-2012 19:21
Automatic Course Calculation Plugin seandepagnier OpenCPN 0 12-10-2010 19:51
Heart Interface Question ess105 Electrical: Batteries, Generators & Solar 1 30-06-2007 18:52

Advertise Here


All times are GMT -7. The time now is 10:06.


Google+
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.
Social Knowledge Networks
Powered by vBulletin® Version 3.8.8 Beta 1
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

ShowCase vBulletin Plugins by Drive Thru Online, Inc.