TI-25 Advanced Lectures on knowledge Engineering Client-Server & Distributed Objects Platform Department of Information & Computer Sciences, Saitama University B.H. Far (far@cit.ics.saitama-u.ac.jp) http://www.cit.ics.saitama-u.ac.jp/~far/lectures/ke2/ke2-06/ 2000 年度前期 B.H. Far@Saitama University 1
Contents 1. Basic Concepts and Definitions 2. Architecture 3. Client-Server Objects 4. Business Objects 5. CORBA & JAVA ORBs 6. CORBA & Agents 7. Developing Tools and Languages 8. Discussion and Conclusion 2000 年度前期 B.H. Far@Saitama University 2
Section 1 Basic Concepts & Definitions 2000 年度前期 B.H. Far@Saitama University 3
WWW Technologies 2000 年度前期 B.H. Far@Saitama University 4
Basic Idea: Simple & Powerful An architecture for interoperability: Allowing intelligent components find each other on a common bus Intelligent Component interface Another Object Bus Object Bus Intelligent Component interface interface Intelligent Component 2000 年度前期 B.H. Far@Saitama University 5
Distributed Object Platform Distributed Objects Object Request Broker (ORB) Client-Server Computing: IIOP, CORBA Style HTML HTML & Forms HTML & JAVA HTTP IIOP CORBA Internet TCP/IP HTTP IIOP CORBA CGI Doc. Apps Apps CORBA ORB DBMS Notes WWW Server Client Network Server Application 2000 年度前期 B.H. Far@Saitama University 6
Definitions Common Object Request Broker Architecture (CORBA) CORBA allows intelligent components (agents) find each other and coordinate their behavior on a common object bus Advantages: Client-server architecture middleware Using objects as a metaphor for using existing applications Ideal for component-based applications 2000 年度前期 B.H. Far@Saitama University 7
Confusing Terminology OMG: Object Management Group IDL: Interface Definition Language ORB: Object Request Broker CORBA: Common Object Request Broker Architecture Component (distributed object) : An object with its interface defined in IDL IIOP: Internet Inter ORB Protocol 2000 年度前期 B.H. Far@Saitama University 8
Distributed CORBA Object -1 IDL defines components boundary, i.e., interface with other components All components on ORB use IDL as their interface Every object (distributed object) is a component C C++ Java Ada C C++ Java Ada IDL IDL IDL IDL IDL IDL IDL IDL Client Server ORB 2000 年度前期 B.H. Far@Saitama University 9
Distributed CORBA Object -2 OMG providers who supply components describe the interface and structure of their products An object requesting something from another object knows the target object s interface All the interfaces are defined in CORBA interface repository. The definition helps objects find each other dynamically The OMG providers, specify which objects and methods are available, and which interface adapters are supported 2000 年度前期 B.H. Far@Saitama University 10
Other Object Models? CORBA Supported by OMG (Object Management Group) including over 700 companies, including IBM, SUN, HP, Apple, Digital, Oracle, Netscape, Hitachi, etc. DCOM Distributed Component Object Model, supported by Microsoft Co. 2000 年度前期 B.H. Far@Saitama University 11
Client-Server Middleware Other client-server middleware Remote Procedure Call (RPC) Peer-to-Peer Services (PPP) Message-Oriented Middleware (MOM) etc. CORBA offers more than the other methods e.g., Polymorphism: the same function call on a target object has different effects, depending on the object that receives it 2000 年度前期 B.H. Far@Saitama University 12
Benefits of CORBA Coexistence with existing systems Binding with any high level language of your choice Connectivity to every other ORB objects using Internet Inter ORB Protocol (IIOP) service Built-in security Built-in transaction handling mechanism Polymorphism 2000 年度前期 B.H. Far@Saitama University 13
Section 2 Architecture 2000 年度前期 B.H. Far@Saitama University 14
Object Management Architecture 2000 年度前期 B.H. Far@Saitama University 15
Object Request Broker (ORB) ORB is the object bus ORB allows local or remote objects request to and receive responses from the other objects ORB allows runtime discovery and invocation of other objects services Compatibility and interoperability 2000 年度前期 B.H. Far@Saitama University 16
Common Facilities A collection of IDL-defined frameworks that provide services of direct use to application objects Examples of common facilities OpenDoc: Distributed Component Document Facility Data interchange Mobile agents Business objects framework Internationalization 2000 年度前期 B.H. Far@Saitama University 17
Common Object Services CORBAservices are generic, application domain independent and mono-functional services Services can be combined in any application in many different ways There are currently 15 services: Naming, Events, Life Cycle, Persistence, Relationships, Externalization, Transactions, Concurrency Control, Licensing, Query, Properties, Security, Time, Collections, and Trading Services 2000 年度前期 B.H. Far@Saitama University 18
Application Objects Application objects stand on top of the structure Application (business) objects are build and maintained by individual companies 2000 年度前期 B.H. Far@Saitama University 19
Section 3 Client-Server Objects 2000 年度前期 B.H. Far@Saitama University 20
Client-Server Objects - 1 Services are defined using IDL Client IDL stubs define how clients invoke corresponding services on the server Interface repository holds description of all the registered components interfaces, their methods and parameters (method signatures) 2000 年度前期 B.H. Far@Saitama University 21
Client-Server Objects - 2 ORB interface A few APIs useful to local services Server IDL Skeletons (stubs) Static interface to services exported by servers Dynamic Skeleton Interface Runtime binding mechanism for incoming method calls Object Adapter Accepting requests for service on behalf of server 2000 年度前期 B.H. Far@Saitama University 22
Client-Server Objects - 3 ORB allows portable object applications IIOP allows interoperability 2000 年度前期 B.H. Far@Saitama University 23
Client-Server Objects - 4 IIOP: Internet Inter ORB Protocol IIOP is basically TCP/IP with some CORBA-defined message exchanges Any ORB can connect with the universe of ORBs by translating requests to and from the IIOP backbone ORB A ORB C Backbone ORB (IIOP) ORB B 2000 年度前期 B.H. Far@Saitama University 24
Client-Server Objects - 5 Static and Dynamic methods Two types of client-server invocation: Static and dynamic The server is not aware whether the invoked method is static or dynamic Object Implementation Client Dynamic invocation Client IDL stubs Server IDL Skeletons + Object Adapter ORB 2000 年度前期 B.H. Far@Saitama University 25
Create Server Classes How to Create server classes, provide interface stubs, store definitions in Interface Repository, instantiate objects at run time and record them with the Implementation Repository 2000 年度前期 B.H. Far@Saitama University 26
Section 4 Business Objects 2000 年度前期 B.H. Far@Saitama University 27
Business Objects - 1 A business object exposes its interfaces to its clients via IDL and communicates with other objects using the ORB 2000 年度前期 B.H. Far@Saitama University 28
Business Objects - 2 A business object is composed of 3 objects: Business object Business process object Presentation Object 2000 年度前期 B.H. Far@Saitama University 29
Business Objects - 3 Client Server interaction 2000 年度前期 B.H. Far@Saitama University 30
Section 5 Corba & Java ORBS 2000 年度前期 B.H. Far@Saitama University 31
CORBA-Java ORBs With a Java ORB, an applet can invoke methods on CORBA objects using the IIOP protocol over the internet There is no need to use HTTP and CGI ORBlets: CORBA enabled applets Use client-side ORBlets in any Java enabled browser Java ORBs Sun s Joe and NEO Netscape s VisiBroker 2000 年度前期 B.H. Far@Saitama University 32
Joe and NEO Joe: A Client-side Java ORB Client-side Java Static method Dynamic method Interface Repository Server callbacks Native Java over IIOP Server-side Java Wide market support Yes Yes No No Yes No No Yes 2000 年度前期 B.H. Far@Saitama University 33
VisiBroker VisiBroker: A client and server ORB Client-side Java Static method Dynamic method Interface Repository Server callbacks Native Java over IIOP Server-side Java Wide market support Yes Yes Yes Yes Yes Yes Yes Yes 2000 年度前期 B.H. Far@Saitama University 34
Section 6 Developing Tools and Languages 2000 年度前期 B.H. Far@Saitama University 35
Developing Tools : ABE ABE Agent Building Environment (ABE) from IBM written in C++ and Java. agents in ABE have rule-based reasoning and interfaces to HTTP, NNTP and SMTP Description Communication Infrastructure Directory service Message Protocol Mediation Service Security Service Property Message based Connectionless Multicast Push Asynchronous None HTTP, NNTP, SMTP None None 2000 年度前期 B.H. Far@Saitama University 36
Developing Tools : JAT JAT The Java Agent Template (JAT) and JAT-Lite from Stanford University enable Java agents to communicate over a LAN via KQML Description Communication Infrastructure Directory service Message Protocol Mediation Service Security Service Property Message based Connected Point-to-point Push Synchronous Nameserver KQML None None 2000 年度前期 B.H. Far@Saitama University 37
Developing Tools : JESS JESS Java Expert System Shell (JESS) is basically CLIPS in Java; it enables solitary reasoning agents to be constructed Description Communication Infrastructure Directory service Message Protocol Mediation Service Security Service Property None None None None None 2000 年度前期 B.H. Far@Saitama University 38
Developing Tools : VOYAGER VOYAGER Voyager from ObjectSpace Inc. provides an Object Request Broker (ORB) for Java agents Description Communication Infrastructure Directory service Message Protocol Mediation Service Security Service Property Message based Connectionless Point-to-point Push Asynchronous ORB IIOP None None 2000 年度前期 B.H. Far@Saitama University 39
Developing Tools : OAA OAA Open Agent Architecture (OAA) from SRI enables the construction of agents that based on a logic-based InterAgent Communication Language and run on top of CORBA Description Communication Infrastructure Directory service Message Protocol Mediation Service Security Service Property Message based Connected Point-to-point Push Synchronous ORB IIOP Facilitator None 2000 年度前期 B.H. Far@Saitama University 40
Section 7 Corba & Agents 2000 年度前期 B.H. Far@Saitama University 41
CORBA & Agents - 1 A client-server information system is a collection of collaborating distributed components (distributed objects) A multi-agent system is a collection of intelligent agents whose models of message passing (i.e., interfaces) and services (i.e., methods) are defined and implemented in IDL and CORBA terms 2000 年度前期 B.H. Far@Saitama University 42
CORBA & Agents - 2 Agents are assumed to have a mental state that dictate agents actions and which are affected by messages they receive Agent s action depends on the incoming message, history (Belief) and the future (Capability) Interfaces and services to be defined: Belief: Agent believes things at certain times Obligation: Agent makes an Obligation to take an action at certain times Decision: An obligation towards oneself Commitment etc. 2000 年度前期 B.H. Far@Saitama University 43
Section 8 Conclusion 2000 年度前期 B.H. Far@Saitama University 44
Advantages Server viewpoint Scalable server-to-server infrastructure Distributed object infrastructure Reuse of existing applications Client viewpoint Remote method invocation Built-in services: Transactions, security, naming, etc. 2000 年度前期 B.H. Far@Saitama University 45