United States Patent (19) 11 Patent Number: 5,680,551 Martino, I 45 Date of Patent: Oct
Total Page:16
File Type:pdf, Size:1020Kb
US005680551A United States Patent (19) 11 Patent Number: 5,680,551 Martino, I 45 Date of Patent: Oct. 21, 1997 54 ELECTRONIC MESSAGING METHOD OF 5,218,697 6/1993 Chung ..................................... 395/650 AND SYSTEM FOR HETEROGENEOUS 5,309,433 5/1994 Cidon et al. .............................. 370/60 CONNECTWTY AND UNIVERSAL AND 5,317,568 5/1994 Bixby et al....... 370/85.6 GENERC INTERACING FOR 5,329,619 7/1994 Page et al. .............................. 395/200 DSTRIBUTED APPLICATIONS AND 5,329,623 7/1994 Smith et al. ............................ 395/275 PROCESSES RESDNG IN WIDE WARETY 5,341,478 8/1994 Travis, Jr. et al. ..................... 395/200 OF COMPUTNG PLATFORMS AND Primary Examiner-Mehmet B. Geckil COMMUNICATION TRANSPORT FACLTES 57 ABSTRACT A novel method of and system for heterogeneous connec 75 Inventor: John A. Martino, IL, Rockport, Mass. tivity and universal and generic interfacing for distributed 73) Assignee: Sybase, Inc., Emeryville, Calif. applications and processes residing in a wide variety of computing platforms communicating over varied transport facilities, through an integrated set of lower-level programs (21) Appl. No.: 594,512 and routines that handle specific services (message/data 22 Filed: Jan. 31, 1996 recovery, security, directory services, etc.) available from applications and processes within varied complex comput Related U.S. Application Data ing and communications environments, and without having to deal with the idiosyncrasies of differing networks, 63 Continuation of Ser. No. 141,344, Oct. 21, 1993, abandoned. protocols, devices, multiple "standards", routing, recovery (51 int. Cl. ... G06F 13/00 and other transport difficulties and differences. This is effected by novelsingle-function software modules or verbs, 52 U.S.C. ...................................... 395/200.15: 395/700 called application programming interface (API), that 58 Field of Search ..................................... 395/200, 325, together provide a consistent and universalinterface through 395/200.15, 200.03, 700 which application programs/processes can access the mes Saging communications services in a manner that isolates the 56) References Cited applications and processes from the confusing and fast U.S. PATENT DOCUMENTS changing communications environment, as well as from 4,745,599 5/1988 Raychaudhuri ........................... 370/93 differences in various computer operating systems, plat 5,138,615 8/1992 Lamport et al. 370/94.3 forms and hardware. 5,167,035 11/1992. Mann et al. ... 395/575 5,187,787 32 Claims, 19 Drawing Sheets , . ce. Far Facto fact? I EYork focal U.S. Patent Oct. 21, 1997 Sheet 3 of 19 5,680,551 APPLICATIONS AP PLICATIONS OR PROCESSES OR PROCESSES COMMUNICATION NETWORK B COMMUNICAON NETWORK C OPERATING OPERATING ENVIRONMENT "A" ENVIRONMENTS FIG.2 U.S. Patent Oct. 21, 1997 Sheet 4 of 19 5,680,551 STARTUP NTALZATION EMS STARTS EMS cREATE 2 APPLICATION STARTUP PROCESSES. MESSA BUILDSice with ANY CONTEN/ FORMAT. APPLICATION STARTS USER OBTAIN 36, STARTUP APPLICATION MESSAGE BUFFER VERB WH MESSAGE LENGTH CREATES N APPLICATION USES NTALIZE COMNG AND SEND SEND VERB AFTER 5. EMS OUTGONG MESSAGE TO LOADING MESSAGE MESSAGE QUEUES EMS HANONG INSTRUC ASSOCATED ONS IN THE WTH USER AND MESSAGE CB HIS APPLICATION RECEIVEMESSAGE APPLICATION APPLICATIONUSES OBTAN 5 USES GET BUF CALL FOR 9 RECEIVE VERB TO STATUS BUFFERI oncerose MESSAGE (S) GET MESSAGE UP BUFFER APPLICAON OR APPLICATION SELECT 2 USER SELECTSID SAVE & 10 SAVES THE MESSAGE D OF MESSAGE ACKNOWLEDG MESSAGE AND USES HE COM MIT VERB O ACKNOWLEDGE APPLICATION OBTAN 8 USES STATUS RELEASE APPLICATION STATUS VER TO OBTAN EMS RESOURCESUSES FREEBUF STATUS OF VERB TO RE SPECIFED LEASE MESSAGE MESSAGE MEMORY FIG. 3 U.S. Patent Oct. 21, 1997 Sheet 5 of 19 5,680,551 INTERFACE CONTROL LOCK (CB) o USED BY APPLICATION PROGRAMS FOR SIMPLE ACCESS TO EMS G ROUTER CONTROL BLOCK (RCB) o USED INTERNALLY BY EMS COMPONENTS TO DETERMINE MESSAGE HANDLENG AND COMMUNICATION METHOD RCB1 EMS MESSAGE HEADER (EMH) COMMUNICATION NETWORK A o STRUCTURE DEPENDS ON COMMUNICATION AGENT SELECTED BY ROUTER COMMUNICATION NETWORK B COMMUNICATION NETWORK C OPERATING ENVIRONMENT A/G.4 U.S. Patent Oct. 21, 1997 Sheet 7 of 19 5,680,551 20, CREATES MESSAGE CONTENT, APPLICATION STRUCTURE AND FORMA. 21, SPECIFIES MESSAGE HANDLING MESSAGE EMS (VIA CLASS-OF-SERVICE.) 26, SEGMENTS LONG MESSAGES. EMS MESSAGE (SEGMENTED) DETERMINES PATH FOR NEXT HOP 22, ADDS EMS HEADER TO MESSAGE DATA. 25, STORES EMS MESSAGE SEGMENTS TO AWAT TRANSPORT. 28, SELECTS APPROPRIATE EMS COMMUNICAON AGENT WITHN EMS COMM. DESIGNATED SERVICE MANAGER 26, DIVIDES EMS MESSAGE SEG - MENTS INTO PACKETS FOR NET WORK / PROTOCOL. 29, STRIPS AND COMPACTS EMS MESSAGE HEADER TO MNMZE TRANSPOR OVERHEAD. EMS COMM. 27, FORMATS PACKETS INTO ONE OR AGENT MORE FRAMES FOR SHIPMENT ACROSS NETWORKS). 30, SHPS FRAMES TO RECEIVNG NETWORK. COMMUNICATION NETWORKS/ PROTOCOL. FIG.6 U.S. Patent Oct. 21, 1997 Sheet 8 of 19 5,680,551 l, SAVES MESSAGE IF NECESSARY. 40, GENERATES APPLICATION OR APPLICATION USER ACKNOWLEDGEMENT F REURED. EMS 39, REQUESTS MESSAGE FROM EMs. CS 38, DETERMINES NEXT ROUTING EMS DESTINATION. MESSAGE EMS (SEGMENED) ROUTER 37, GENERATES ACKNOWLEDGEMENT MESSAGE AS REQUIRED. 36, ASSEMBLES SEGMENTS INTO COMPLETE MESSAGES. 35, DELIVERS SEGMENTS TO ROUTER OR OUEUE MANAGER. EMS COMM, 34, STRIPS PROTOCOL DATA AND MANAGER ADOS/EXPANDS OCA HEADER DATA. 33, ASSEMBLES PACKETS INTO SEGMENTS 32, ASSEMBLES FRAMES INTO PACKETS EMS COMM. A GEN 31, RECEIVES FRAMES FROM NETWORK. COMMUNICATION NETWORKS/ PROTOCOL. FIG. 7 U.S. Patent Oct. 21, 1997 Sheet 9 of 19 5,680,551 COMMT CHECK CAL PARAMETER VALIDIY LOCATE THE GCB USING THE CB MESSAGE POINTER ENGUELE THE CCB UNCONDITIONAY NOTIFY THE EMS ROUTER TO ISSUE THE PROPER ACKNOWLEDGEMENT FREE MESSAGE BUFFERS DEOUEUE THE GCB FIG. 8 U.S. Patent Oct. 21, 1997 Sheet 10 of 19 5,680,551 DELETE CHECK CAL PARAMETER VALIDITY: ENOUEUE THE CCE POOL UNCONDITIONALLY LOCATE THE ACTIVE GCB WITH THE INPUT ICE QUEUE NAME IF ACTIVE GC8 FOUND: F ACTIVE CCB IS NOT FOUND: ENUEUE THE CCB UNCONDITIONALLY DEUEUE THE GCE POOL FOR EACH SEGMENT SET RETURN CODE ATTACHED TO QC8, CONNECT SEGMENT O ERROR TO FREE LIST DEQUEUE THE ACTIVE OCS DEQUEUE THE GCB | POOL FIG.S U.S. Patent Oct. 21, 1997 Sheet 11 of 19 5,680,551 FREEBUF CHECK CALL PARAMETER WALIDITY - IF NOT VALID, RETURN ERROR CODE VALIDATE INPUT BUFFER- IF NOT VALID, RETURN ERROR CODE VALIDATE MESSAGE STATE-1F NOT VALID, RETURN ERROR CODE IF INPUT BUFFER IS TEMPORARY, RETURN BUFFER TO OPERATING systEM IF INFPUT BUFFER IS SEGMENT BUFFER, RETURN BUFFERTO FREE SEGMENT POOL SET THE RETURN CODE FIG. IO U.S. Patent Oct. 21, 1997 Sheet 12 of 19 5,680,551 GET BUF CHECK CAL PARAMETER VALIDITY IF NOT VALID, RETURN ERROR CODE ENQUEUE THE SEGMEN POOL UN CONDITIONALLY GET NEXT FREE SEGMENT F NO FREE SEGMENT FOUND, RETURN ERROR CODE. SET THE RETURN BUFFER POINTER SET THE RETURN CODE FIG. // U.S. Patent Oct. 21, 1997 Sheet 13 of 19 5,680,551 INALIZE CHECK CAL PARAMETER VALIDITY: ENGUEUE THE GCB POOL UNCONDONALLY LOCATE THE ACTIVE GCE WITH THE INPUT PROCESS GUEUE NAME ACTIVE C3 FOUND ACTIVE OCB NOT FOUND ENQUEUE THE ACTIVE OC3 UN CONDITIONALY GET FREE GC8 ACTIVE OCB OWNER ENOUEUE NO FREE NOT CALNG PROCESS FREE GCB GCS AND NOT NULL TRUE FALSE CONNEC SET REURN FREE GCB CODE TO DEQUEUE O ACTIVE ERROR ACTIVE CCB CB S SET RETURN SET ACVE OCB OWNER CODE TO ERROR TO CALLING PROCESS SET ACTIVE GCB NAME SET MAX. MESSAGE COUNT DEQUEUE THE GCB FIG. 12 U.S. Patent Oct. 21, 1997 Sheet 14 of 19 5,680,551 PURGE CHECK CALL PARAMETER VALIDITY ENGUEUE THE GCB POOL UNCONDITIONALLY LOCATE THE ACTIVE GCB WITH HE INPUT ICE QUEE NAME ACTIVE GCE FOUND ACVE GCB NO FOUND ENOUEUE THE ACTIVE DECUEUE THE GCB POOL CCB UNCONDITIONALY FOR EACH DATA SEG - SET RETURN CODE TO ERROR MENT CONNECTED TO THE ICB, CONNECT SEGMENT TO FREE SEGMEN IS DEQUEUE ACTIVE CCB DEQUEUE THE GCS POOL Sar RETURN CODE TO SUCCESS U.S. Patent Oct. 21, 1997 Sheet 15 of 19 5,680,551 RECEIVE CHECK CALL PARAMETER VALIDITY LOCATE THE GCB USING THE INPUT GUEUEHANDE POINTER EN QUEUE THE CCB UN CONDITIONALLY MESSAGE COUNT de O MESSAGE COUNTo LOCATE THE HIGH EST PRORITY DEQUEUE MESSAGE . THE CCB MESSAGE SIZE RE OPMAL SEGMENT SE RETURN SZE CODE TO ERROR TURN GET A TEMPORARY SETBUFFER RETU FROM MESSAGE BUFFER MESSAGE SEGMEN BUFFER FOR EACH MESSAGE SEGMENT MOVE SEG MENT TO TEMP MESSAGE BUFFER CHANGE MESSAGE STATE (F SET RETURN BUFFER FROM NEEDED) TO TEMPORARY MESSAGE PENDING BUFFER COMMT DECUUE THE CCB FIG.f4 U.S. Patent Oct. 21, 1997 Sheet 16 of 19 5,680,551 SEND CHECK CAL PARAMEER WALDIY H-(E) VALD WAD SET THE WORK QUEUE NAME TO DESTINATION NODE, PROCESS NAME ENUEUE THE CB POOL UN CONDITIONALLY LOCATE THE ACTIVE GCE USING WORK UEUE NAME ACVE OCB FOUND ACTIVE GCB NOT FOUND ENUEUE HE ACTIVE GE FREE CCB GCB UNCONOTIONALLY ENGUEUE FREE GCB CONNEC SET RETURN FREE ACB CODE TO DEQUEUE THE GCB TO ACTIVE ERROR POOL GCB LS SET RETURN CODE TO success FIG. 15 U.S. Patent Oct. 21, 1997 Sheet 17 of 19 5,680,551 STATUS CHECK CALL PARAMETER VALIDITY ENOUEUE THE GCB UNCONDONALY LOCATE THE ACTIVE GCB WTH THE INPUT QUEUE NAME. ACTIVE QCB FOUND ACTIVE CC3 NOT FOUND CHECK REOUEST CODE FIELD SET RETURN CODE TO ERROR STATUS STATUS NQUERY CHANGE COPY GCB ENGUEUE THE C3 SATUS DATA UN CONDITIONALY TO NPUT CE Ice STATE CB SAEC OC3 SATE CB STATE MOVE CB DEQUEUE NEW SAE THE CCB TO CC8 CURRENT STATE SET RETURN CODE TO ERROR DECU EUE THE QC3 FIG 16 U.S. Patent Oct. 21, 1997 Sheet 18 of 19 5,680,551 TERMINATE CHECK CALL PARAMETER WALDIY EN QUEE THE GC3 UN CONDONALLY LOCATE THE ACTIVE GCS WITH HE INPUT OUEUE NAME ACTIVE OCB FOUND ACTIVE GCB NOT FOUND EN QUEUE HE C3 UN CONDITIONALLY SET REURN CODE TO ERROR SET RETURN NO CODE TO SET GUEUE ERROR OWNER TO NULL YES CONNECT SAVE QC9 O FREE ACVE OCS LS MESSAGES (E) FIG.