Go Back   ZeroC Forums > Help Center

Reply
 
LinkBack Thread Tools Rate Thread Display Modes
  #1 (permalink)  
Old 12-21-2006
psaunder psaunder is offline
Registered User
 
Name: Patrick Saunders
Organization: Inhouse IT Services
Project: Monotaur
 
Join Date: Aug 2006
Location: Mildura, Victoria, Australia
Posts: 3
Where do new developers start..?

We have a product that I would like to use ICE to create an API for.
Our product is essentially a router that does wireless authentication using PPPoE protocol.

It has a PHP web based interface for administration though would like more flexibility and power with regard to interfacing to our product - hence Ice.

The product has Oracle database that includes data for:
*Staff
*Customers
*Plans
*Usage.

I want the API to allow:
*Search
* Read
* Update
* Delete
of this data.

I am relatively experienced developer (10 years+) though have not done any middleware programming as such.
To develop this API, what books, study, articles, philosophy do people here suggest to build a good, robust API using ICE?

As I need to interface to oracle using OCCI, I'll probably use C++ as language, if that makes a difference.

Thanks for reading,

Patrick.
__________________
Patrick Saunders
Application developer
In-House IT Services
Mildura, Victoria, Australia
www.in-house.com.au


Candidate project for ICE: Monotaur - Independant Wireless Management System.
Reply With Quote
  #2 (permalink)  
Old 12-22-2006
beagles's Avatar
beagles beagles is offline
ZeroC Staff
 
Name: Brent Eagles
Organization: ZeroC, Inc
Project: Ice Developer
 
Join Date: Feb 2003
Location: Newfoundland
Posts: 110
Thanks for considering Ice! I think you'll find Ice an excellent choice.

While some texts on developing distributed applications may be in order, ZeroC has plenty of materials available to get you started. The Ice documentation, FAQs, forums and demos that are included in each Ice source distributions make up a sizeable body of information. Last, but definitely not least, our Connections newsletter has several articles on a variety of topics.

Last edited by beagles : 12-22-2006 at 07:53 AM.
Reply With Quote
  #3 (permalink)  
Old 12-22-2006
beagles's Avatar
beagles beagles is offline
ZeroC Staff
 
Name: Brent Eagles
Organization: ZeroC, Inc
Project: Ice Developer
 
Join Date: Feb 2003
Location: Newfoundland
Posts: 110
By the way, it might also interest you that the upcoming 3.2 release includes an example that interfaces with Oracle via OCCI.

Cheers
Reply With Quote
  #4 (permalink)  
Old 12-28-2006
psaunder psaunder is offline
Registered User
 
Name: Patrick Saunders
Organization: Inhouse IT Services
Project: Monotaur
 
Join Date: Aug 2006
Location: Mildura, Victoria, Australia
Posts: 3
Component design..

Hi Beagles,
Thanks for your reply. I have read some of the FAQ, portion of the book and most of the newsletters. Are there books that you would suggest for API/component/middleware design?

I'll keep an eye out for 3.2 - I've been reading the Oracle 10g OCCI manual and it is very full featured.

thanks,

Pat.
__________________
Patrick Saunders
Application developer
In-House IT Services
Mildura, Victoria, Australia
www.in-house.com.au


Candidate project for ICE: Monotaur - Independant Wireless Management System.
Reply With Quote
  #5 (permalink)  
Old 01-01-2007
michi's Avatar
michi michi is offline
ZeroC Staff
 
Name: Michi Henning
Organization: ZeroC
Project: Ice
 
Join Date: Feb 2003
Location: Brisbane, Australia
Posts: 931
Unfortunately, very few books have been written on how to design good APIs. One book that I found useful is "Pattern-Oriented Software Architecture, Volume 2, Patterns for Concurrent and Networked Objects" by Schmidt et al. It's more about design techniques than APIs, but still worth reading.

Cheers,

Michi.
Reply With Quote
  #6 (permalink)  
Old 01-01-2007
eric.hill eric.hill is offline
Registered User
 
Name: Eric Hill
Organization: Pioneer Balloon Co.
Project: Internal Research
 
Join Date: Jul 2006
Location: Wichita, KS
Posts: 25
Talking

I've been doing extensive testing with Ice and various clients (Win32, MFC, linux, PHP...) and various servers hitting various databases (Oracle, sqlite). Here are some of my experiences.
  1. Oracle's OCCI is nice, but very touchy with respect to Visual Studio versions and library formats. Go look at OTL instead. It talks directly to the OCI, and has a very low learning curve. Plus, it's rock solid stable. I haven't had a single failure due to OTL in any of the code I've written. If you code your software right, switching between Oracle, DB2, or ODBC will be very trivial.
  2. As good as OTL is, it doesn't speak native sqlite or postgresql. This is where Ice REALLY comes in handy. Separate your database services from your business services. Then, swapping database layers is as simple as writing another service and changing an Ice property.
  3. It takes quite a bit of learning to get up to speed on the differences between MyObject, MyObjectPtr, MyObjectPrx, and the dozen or so other interfaces that Ice provides. Take your time and familiarize yourself with these different concepts first. An understanding of these concepts will help you quite a bit with your coding.
  4. Design your services to be as simple as possible and let the Ice framework do it's job. Don't bother trying to create your own thread pool for database connections. Just use the built-in thread pool that the Ice runtime already provides. Less custom code == less bugs.
__________________
Eric Hill - ijack.net
Pioneer Balloon Co.
Reply With Quote
  #7 (permalink)  
Old 01-01-2007
rc_hz rc_hz is offline
Registered User
 
Name: Eric RC
Organization: www.genband.com
Project: No project yet
 
Join Date: Jul 2004
Location: Hangzhou, China
Posts: 189
Send a message via MSN to rc_hz
-->
Quote:
Originally Posted by eric.hill View Post
I've been doing extensive testing with Ice and various clients (Win32, MFC, linux, PHP...) and various servers hitting various databases (Oracle, sqlite). Here are some of my experiences.
  1. Oracle's OCCI is nice, but very touchy with respect to Visual Studio versions and library formats. Go look at OTL instead. It talks directly to the OCI, and has a very low learning curve. Plus, it's rock solid stable. I haven't had a single failure due to OTL in any of the code I've written. If you code your software right, switching between Oracle, DB2, or ODBC will be very trivial.
  2. As good as OTL is, it doesn't speak native sqlite or postgresql. This is where Ice REALLY comes in handy. Separate your database services from your business services. Then, swapping database layers is as simple as writing another service and changing an Ice property.
I have used OTL(http://otl.sourceforge.net) many years. It's really very simple and good! It's worth trying.
__________________
Eric RC
www.genband.com (telecommunication)
I like ICE (Ice for C++/Java/Python)
Reply With Quote
  #8 (permalink)  
Old 01-02-2007
psaunder psaunder is offline
Registered User
 
Name: Patrick Saunders
Organization: Inhouse IT Services
Project: Monotaur
 
Join Date: Aug 2006
Location: Mildura, Victoria, Australia
Posts: 3
Thumbs up OCCI, OCI, OTL and ICE Api

Thanks Michi, Eri and rc for your responses.
I've started looking at OTL, and wow, it's really different.

Just so it's clear on how I'm trying to do things, see picture attachment.

What I expected to do was write the ICE API using C++, and embed the OCI/OCCI or STL statements into their to implement the functionality.
This would all be in Linux, command line environment.
I wasn't intending to do any OCCI programming from Visual studio or any other IDE/environment.
I expected the client program may be written as .net winform app using c# or something else.

For my project, it is unlikely that we would change the database as I use of PL/SQL and triggers to implement functionality - plus I am big Oracle fan.

I expected to have tight binding between my ICE and database layer.
Would I need to have seperation of this?

Thanks for reading, and happy new year!

Patrick.
Attached Thumbnails
where-do-new-developers-start-overview.jpg  
__________________
Patrick Saunders
Application developer
In-House IT Services
Mildura, Victoria, Australia
www.in-house.com.au


Candidate project for ICE: Monotaur - Independant Wireless Management System.
Reply With Quote
  #9 (permalink)  
Old 01-02-2007
michi's Avatar
michi michi is offline
ZeroC Staff
 
Name: Michi Henning
Organization: ZeroC
Project: Ice
 
Join Date: Feb 2003
Location: Brisbane, Australia
Posts: 931
Quote:
Originally Posted by psaunder View Post
I expected to have tight binding between my ICE and database layer.
Would I need to have seperation of this?
It really depends on what your goals are. Ice is agnostic as to how you engineer your application. If you do not anticipate a need to change databases at some point in the future, and if you do not mind being tightly coupled to a particular database, there is no need for better separation.

Cheers,

Michi.
Reply With Quote
Reply



Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools
Display Modes Rate This Thread
Rate This Thread:

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

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

Similar Threads
Thread Thread Starter Forum Replies Last Post
Ice.NoEndpointException when any node not start illo Help Center 5 07-20-2006 10:45 PM
IceGridGui start - ClassNotFoundException kovacm Bug Reports 7 11-21-2005 08:00 AM
How re-start the thread level Help Center 1 01-17-2005 01:06 PM
start icepacknode manually zhuxiaofeng Help Center 2 10-06-2004 08:52 PM
How to start ICE? RichardChan Help Center 3 07-26-2004 10:16 AM


All times are GMT -4. The time now is 12:20 AM.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2009, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.0.0
(c) 2008 ZeroC, Inc.