Hello Gustavo;
With "backend" I will assume you mean "database". Yes, you are
correct that you could create a Cocoa application and a separate
WebObjects application which communicate back to the same database
server. There are however some problems with this. The term "web
services" refers to any protocol such as JSON-RPC, SOAP, XML-RPC;
Authorisation – the client will be able to access the database
directly and so authorisation of data visibility will be difficult (or
in some cases impossible) to enforce. For example "Doctor Bob can see
patient Sue's medical records because Sue visits Bob's department at
the Eastern Hospital where he works, but can't see her contact details
because Sue is not one of Bob's patients." By using web services, it
is possible to leverage the same authorisation rules that drive the
web interface for the API of your application.
Database Independence – if the Cocoa client gets direct database
access, are you going to be hard-wiring for a specific database
product? Can you get database drivers for the C language for your
current database server and the database server you may migrate to in
the future? By using web services, you can leverage these
advantageous behaviours of EOF.
Network Security – Web services (JSON-RPC / SOAP / XML-RPC etc...)
typically communicate using the HTTP protocol so a Cocoa client could
exist anywhere on the internet. Without exposing the database to the
internet, this would be impossible with direct database access.
Validation – by accessing the database directly, validation rules in
both the model as well as the java logic are by-passed and invalid
data may be written to the database. By using web services, the same
validation used in the web interfaces are enforced in the API of your
system.
Delegation of Complex Business Logic – If the application server
contains complex business rules and the client by-passes the
application server to access the database directly, it will have to re-
implement those complex business rules. If you have more clients in
different languages then you have more replicated code. By using web
services, you can execute that logic on the application server and
implement / maintain this logic once.
Scaling – Some business process may not be able to execute on one
remote client machine in an acceptable time frame and may need to be
multiplexed over a number of servers to access additional memory,
process closer to the database or make better use of some resource.
Web-services allows you to back-haul that resource-intensive
processing onto the application server.
So in general, I would tend to use an application server with web
services to create a multi-user system with "fat clients".
cheers.
One question, theoretic one . If, both, the Cococa App and the WO
app, are using the same servers, its worth to make a WS to
interoperate between them?, I dunno if I have made myself clear; as
far as I remember form school, was that WS are used mostly to
interoperate different applications with different logic and back
end, so if my apps are using the same back end, whatever I do in on
server it will be reflected on the other app and vise-versa no?
So again my question, do I need to make such a layer with WS's ?
___
Andrew Lindesay
www.lindesay.co.nz
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com
This email sent to [email protected]