r5 - 07 Dec 2006 - 16:55:18 - TrinTantsetthiYou are here: TWiki >  Main Web  > HowTo
Home go_fb Previous go_back go_forward Next go_ff Exchange go_ff Technical

How OpenCARE works?

The idea behind OpenCARE is simple.

  1. An OpenCARE node connects to information sources by mean of plug-in implementations.
    • Each information source has a plug-in which communicates with the source in its native format. This approach allows OpenCARE to talk to any kind of information source, without the need to change the source, as long as there is a plug-in for it.
    • Some information sources are one-way such as RSS/ATOM feed, website, weather earthquake or other alert, etc.
  2. Once information is fetched by a plug-in, it translates information into a general format, such as EDXL.
    • Conceptually, plug-ins work best by dealing with structured information because such information can be translated into XML easily.
    • Text in whatever encoding is translated into Unicode.
    • Other kind of information such as relevant picture or binary data can also be encapsulated into an XML structure by first translating it into base64 first.
  3. When the information native to the information source is translated into an XML-based general format, this information packet is then sent over to other OpenCARE nodes in the network.
  4. At a remote OpenCARE node, it translates a general XML-based format back into a native format that end-systems connecting to that node understand. This is done by mean of plug-ins.
    • Information received by end-systems through OpenCARE can be structurally different from the originating information.
    • This approach makes different systems talk together through OpenCARE in a straight-through processing fashion.

Here is an example of how System A disseminates information to Systems B, C, and D through OpenCARE.

  • System A, connecting to OpenCARE node N1, send data in Format A (native to System A).
  • Node N1 upon receiving such information by plug-in A then translates it into a general XML-based format.
  • Subsequently, node N1 broadcasts the translated XML information it has just received to other OpenCARE nodes.
  • OpenCARE node N2 upon receiving XML information from node N1:
    • it uses plug-in B to translate the received information for System B, into B's native format,
    • at the same time, it uses plug-in C to do the same for System C, in C's native format,
    • information received by B and C is the same information from A but structured differently because B and C are using different formats than A (different software).
  • System D, connected at OpenCARE node N3, also receives the same information as those connected to Node N2 above. But if System D is using the same software as System A, then node N3 will use plug-in A to talk to System D. Plug-ins are shared among OpenCARE nodes in the network.

What does it take to implemement OpenCARE?

  1. A big multi-lateral co-operation, a common goal, a common belief that working together brings more benefit than working alone.
  2. Plug-in. Lots of Plug-in to be written.
  3. Node implementation. Node's jobs are to:
    1. hosts plug-ins,
    2. disseminate information from one node to the rest in the network, and
    3. to relief load from data dissemination from an end-system where information is originally serves.

OpenCARE works in heterogeneous environment. Because an OpenCARE node might be operated by different organizations in different countries, OpenCARE is designed to make it cross platform, i.e., no dependency on any particular preference.

hand At this moment, a reference implementation of OpenCARE node will be a Geronimo-based J2EE implmentation. Natually, plug-ins under the application server are to be written in Java, although not necessarily. Another reference implementation is planned by running standalone ActiveMQ. ActiveMQ extends plug-in development to many other programming languages besides Java. It should be noted that OpenCARE avoids web services in its core due to system load. However, web services may be implemented, as required to interface to certain external end-system, in plug-ins.

Home go_fb Previous go_back go_forward Next go_ff Exchange go_ff Technical

Comment Username Time
Are we on the right track? Comments integrated into the document will be removed. Admin 18 Jun 2006
I think we are on right track but before we do any final decisions. We need to think quite carefull that platform issue. Is it Java, Web-based or something else. Java and Web platforms are both quite good. We gonna need Web services anyways, we already have need for them in form of this twiki, blog and forums. And we gonna need more. I don't think that website load is an any issue in this case. And if it is. Normal web servies can be replicated and loadbalanced mutch more easilly than java applications. Also there is mutch less java programmers in this world.

Both of them can quite easilly parse all needed incoming data.

Both of them uses easily databases.

Web we have, java no. Do we need Java... At this point unless someone really shows a reason why, I'd say no we don't need java.

If we need java, we can always quite easily join apache and java services together. Tomcat and Apache together works quite nicelly.

JaniHirvinen 16 Oct 2006 - 00:04
Points noted. OpenCARE is a message oriented middleware. Its reference implementation is built upon ActiveMQ (JMS). That may give a feeling that it is inclined towards Java.

There are a few design choices that MOM design was chosen for the reference implementation: (1) a MOM design is more suitable for an alert type of information, (2) MOM doesn't need reconfiguation when a system enters or leaves OpenCARE, (3) to ensure that information is sent to all participating systems in a web services fashion, we need fully mesh connectivities. For n participating nodes, we will need n(n-1)/2 bidirectional connections; a 20 nodes system will need 380 links. The number of connections (software interfaces) is more and more painful as the number of system grows. (4) OpenCARE may embrace web services node by implementing a web service plug-in in no time; it's just another plug-in implementation.

On web interface, I think another plug-in should be implemented to separate presentation layer from business logic.

Keep it light.
TrinTantsetthi 24 Nov 2006 - 12:32

-- TrinTantsetthi - 18 Jun 2006

Edit | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r5 < r4 < r3 < r2 < r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback