text:
The present invention provides a method and apparatus for providing real-time, two-way transactional capabilities on the network. Specifically, one embodiment of the present invention discloses a configurable value-added network switch for enabling real-time transactions on the network. The configurable value added network switch comprises means for switching to a transactional application in response to a user specification from a network application, means for transmitting a transaction request from the transactional application, and means for processing the transaction request. Additionally, a method for enabling object routing is disclosed, comprising the steps of creating a virtual information store containing information entries and attributes associating each of the information entries and the attributes with an object identity, and assigning a unique network address to each of the object identities. Finally, a method is disclosed for enabling service management of the value-added network service, to perform OAM&P functions on the services network.
1. A method for providing a service over a digital network, the method comprising:
sending first display information from a first computer system to a user device, wherein the first display information includes a control associated with a commercial service;
accepting a first signal in response to a user input to activate the control;
associating an object identity with information entries and attributes, wherein the object identity represents a networked object;
storing said information entries and said attributes in a virtual information store;
assigning a unique network address to said object identity;
initiating, in response to the first signal, communication between the user device and a second computer system;
using the second computer system for
sending second display information to the user device, wherein the second display information includes a list of at least one commercial service;
accepting a second signal in response to a user input to select a commercial service from the list; and
completing a commercial transaction relating to the selected commercial service.
2. The method of
3. The method of
4. The method of
5. The method of
6. The method of
7. The method of
8. The method of
9. The method of
10. The method of
11. The method of
12. The method of
13. The method of
14. An apparatus for providing a service over a digital network, the apparatus comprising:
a processor;
a machine-readable storage device including one or more instructions executable by the processor for
sending first display information from a first computer system to a user device, wherein the first display information includes a control associated with a commercial service;
accepting a first signal in response to a user input to activate the control; and
initiating, in response to the first signal, communication between the user device and a second computer system, wherein the second computer system acts to send second display information to the user device, wherein the second display information includes a list of at least one commercial service; wherein the second computer system further acts to accept a second signal in response to a user input to select a commercial service from the list; and to complete a commercial transaction relating to the selected commercial service;
associating an object identity with information entries and attributes, wherein the object identity represents a networked object;
storing said information entries and said attributes in a virtual information store; and
assigning a unique network address to said object identity.
15. A machine-readable storage device including instructions executable by a processor for providing a commercial service over a digital network, the machine-readable storage device including one or more instructions for:
sending first display information from a first computer system to a user device, wherein the first display information includes a control associated with a commercial service;
accepting a first signal in response to a user input to activate the control;
initiating, in response to the first signal, communication between the user device and a second computer system, wherein the second computer system acts to send second display information to the user device, wherein the second display information includes a list of at least one commercial service; wherein the second computer system further acts to accept a second signal in response to a user input to select a commercial service from the list; and to complete a commercial transaction relating to the selected commercial service;
associating an object identity with information entries and attributes, wherein the object identity represents a networked object;
storing said information entries and said attributes in a virtual information store; and
assigning a unique network address to said object identity.
16. A method for providing a commercial service over a digital network, the method comprising:
using first computing resources operated by a first business entity to send first display information to a user device, wherein the first display information includes first and second controls;
accepting a first signal in response to a user input to activate the first control;
first performing, in response to the first signal, a first commercial service associated with the first control, wherein the first performing is accomplished under the control of the first business entity interacting with the user device;
accepting a second signal in response to a user input to activate the second control;
second performing, in response to the second signal, a second commercial service associated with the second control, wherein the second performing is accomplished under the control of a second business entity operating second computing resources and interacting with the user device;
associating an object identity with information entries and attributes, wherein the object identity represents a networked object;
storing said information entries and said attributes in a virtual information store; and
assigning a unique network address to said object identity.
17. The method of
exchanging information between the first and second business entities in order to complete a transaction in response to one or more of the signals.
18. The method of
19. The method of
This application is a divisional patent application of application Ser. No. 09/296,207, filed Apr. 21, 1999, now U.S. Pat. No. 6,212,556 which is a continuation-in-part patent application claiming priority to U.S. Pat. No. 5,987,500, entitled Value-Added Network System For Enabling Real-Time, Bi-Directional Transactions On A Network, formerly application Ser. No. 08/879,958, and filed on Jun. 20, 1997. U.S. Pat. No. 5,987,500 is itself a divisional application claiming priority to U.S. Pat. No. 5,778,178, entitled Method And Apparatus For Enabling Real-Time Bi-Directional Transactions On A Network, formerly application Ser. No. 08/700,726, filed on Aug. 5, 1996, which also claims priority and benefit under 35 U.S.C. 119(e) to U.S. Provisional Application No. 60/006,634 filed on Nov. 13, 1995.
The present invention relates to the area of network communications, including heterogeneous networks such as the Internet, World Wide Web (WWW), telephone network, wireless networks, cable television networks, and private enterprise networks. Specifically, the present invention relates to a method and apparatus for configurable value-added network switching and object routing.
With the Internet and the World Wide Web ("the Web") evolving rapidly as a viable consumer medium for electronic commerce, new on-line services are emerging to fill the needs of on-line users. An Internet user today can browse on the Web via the use of a Web browser. Web browsers are software interfaces that run on Web clients to allow access to Web servers via a simple user interface. A Web user's capabilities today from a Web browser are, however, extremely limited. The user can perform one-way, browse-only interactions. Additionally, the user has limited "deferred" transactional capabilities, namely electronic mail (e-mail) capabilities. E-mail capabilities are referred to as "deferred transactions" because the consumer's request is not processed until the e-mail is received, read, and the person or system reading the e-mail executes the transaction. This transaction is thus not performed in real-time.
Under limited circumstances, a user may have access to two-way services on the Web via Common Gateway Interface (CGI) applications. CGI is a standard interface for running external programs on a Web server. It allows Web servers to create documents dynamically when the server receives a request from the Web browser. When the Web server receives a request for a document, the Web server dynamically executes the appropriate CGI script and transmits the output of the execution back to the requesting Web browser. This interaction can thus be termed a "two-way" transaction. It is a severely limited transaction, however, because each CGI application is customized for a particular type of application or service.
For example, as illustrated in
As the Web expands and electronic commerce becomes more desirable, the need increases for robust, real-time, bi-directional transactional capabilities on the Web. A true real-time, bi-directional transaction would allow a user to connect to a variety of services on the Web, and perform real-time transactions on those services. For example, although user 100 can browse car dealer Web page 105 today, the user cannot purchase the car, negotiate a car loan or perform other types of real-time, two-way transactions that he can perform with a live salesperson at the car dealership. Ideally, user 100 in
It is therefore an object of the present invention to provide a method and apparatus for providing real-time, two-way transactional capabilities on the network, including heterogeneous networks such as the Internet, World Wide Web (WWW), telephone network, wireless networks, cable television networks, and private enterprise networks. Specifically, one embodiment of the present invention discloses a configurable value-added network switch for enabling real-time transactions on a network. The configurable value added network switch comprises means for switching to a transactional application in response to a user specification from a network application, means for transmitting a transaction request from the transactional application, and means for processing the transaction request.
According to another aspect of the present invention, a method and apparatus for enabling object routing on a network is disclosed. The method for enabling object routing comprises the steps of creating a virtual information store containing information entries and attributes, associating each of the information entries and the attributes with an object identity, and assigning a unique network address to each of the object identities.
Other objects, features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description.
The features and advantages of the present invention will be apparent from the accompanying drawings and from the detailed description of the present invention as set forth below.
The present invention relates to a method and apparatus for configurable value-added network switching and object routing and management. The network browser or "Web browser" as used in the context of the present specification includes conventional Web browsers such as NCSA Mosaic™ from NCSA and Netscape Mosaic™ from Netscape™. The present invention is independent of the Network browser being utilized and the user can use any Network browser, without modifications to the Network browser. In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the present invention. It will be apparent to one of ordinary skill in the art, however, that these specific details need not be used to practice the present invention. In other instances, well-known structures, interfaces and processes have not been shown in detail in order not to unnecessarily obscure the present invention.
In general, such computer systems as illustrated by
Processor 202 may be any of a wide variety of general purpose processors or microprocessors such as the Pentium™ microprocessor manufactured by Intel™ Corporation or the Motorola™ 68040 or Power PC™ brand microprocessor manufactured by manufactured by Motorola™ Corporation. It will be apparent to those of ordinary skill in the art, however, that other varieties of processors may also be used in a particular computer system. Display device 205 may be a liquid crystal device, cathode ray tube (CRT), or other suitable display device. Mass storage device 207 may be a conventional hard disk drive, floppy disk drive, CD-ROM drive, or other magnetic or optical data storage device for reading and writing information stored on a hard disk, a floppy disk, a CD-ROM a magnetic tape, or other magnetic or optical data storage medium. Data storage medium 208 may be a hard disk, a floppy disk, a CD-ROM, a magnetic tape, or other magnetic or optical data storage medium.
In general, processor 202 retrieves processing instructions and data from a data storage medium 208 using mass storage device 207 and downloads this information into random access memory 203 for execution. Processor 202, then executes an instruction stream from random access memory 203 or read-only memory 204. Command selections and information input at input device 206 are used to direct the flow of instructions executed by processor 202. Equivalent input device 206 may also be a pointing device such as a conventional mouse or trackball device. The results of this processing execution are then displayed on display device 205.
The preferred embodiment of the present invention is implemented as a software module, which may be executed on a computer system such as computer system 200 in a conventional manner. Using well known techniques, the application software of the preferred embodiment is stored on data storage medium 208 and subsequently loaded into and executed within computer system 200. Once initiated, the software of the preferred embodiment operates in the manner described below.
Network layer 303 enables any pair of systems in the network to communicate with each other. Network layer 303 contains hardware units such as routers, that handle routing, packet fragmentation and reassembly of packets. Transport layer 304 establishes a reliable communication stream between a pair of systems, dealing with errors such as lost packets, duplicate packets, packet reordering and fragmentation. Session layer 305 offers services above the simple communication stream provided by transport layer 304. These services include dialog control and chaining. Presentation layer 306 provides a means by which OSI compliant applications can agree on representations for data. Finally, application layer 307 includes services such as file transfer, access and management services (FTAM), electronic mail and virtual terminal (VT) services. Application layer 307 provides a means for application programs to access the OSI environment. As described above, the present invention is implemented to function as a routing switch in application layer 307. Application layer routing creates an open channel for the management, and the selective flow of data from remote databases on a network.
A. Overview
A typical user transaction today may involve user 100 walking into a bank or driving up to a teller machine, and interacting with a live bank teller, or automated teller machine (ATM) software applications. Alternatively, user 100 can perform the same transaction by using a personal computer (PC), activating application software on his PC to access his bank account, and dialing into the bank via a modem line. If user 100 is a Network user, however, there is no current mechanism for performing a robust, real-time transaction with the bank, as illustrated in
According to one embodiment of the present invention, as illustrated in
As illustrated in
Exchange 501 processes the consumer's request and displays an exchange network page 505 that includes a list of POSvc applications 510 accessible by exchange 501. A POSvc application is an application that can execute the type of transaction that the user may be interested in performing. The POSvc list is displayed via the graphical user interface component. One embodiment of the present invention supports HyperText Markup Language as the graphical user interface component. Virtual Reality Markup Language and Java™ are also supported by this embodiment. A variety of other graphical user interface standards can also be utilized to implement the graphical user interface.
An example of a POSvc application list is illustrated in
Once Bank POSvc application 510 has been activated, user 100 will be able to connect to Bank services and utilize the application to perform banking transactions, thus accessing data from a host or data repository 575 in the Bank "Back Office." The Bank Back Office comprises legacy databases and other data repositories that are utilized by the Bank to store its data. This connection between user 100 and Bank services is managed by exchange 501. As illustrated in
Each network merchant may choose the types of services that it would like to offer its clients. In this example, if Bank decided to include in their POSvc application access to checking and savings accounts, user 100 will be able to perform real-time transactions against his checking and savings accounts. Thus, if user 100 moves $500 from his checking account into his savings account, the transaction will be performed in real-time, in the same manner the transaction would have been performed by a live teller at the bank or an ATM machine. Therefore, unlike his prior access to his account, user 100 now has the capability to do more than browse his bank account. The ability to perform these types of robust, real-time transactions from a network client is a significant aspect of the present invention.
Bank can also decide to provide other types of services in POSvc application 510(1). For example, Bank may agree with Car dealership to allow Bank customers to purchase a car from that dealer, request a car loan from Bank, and have the entire transaction performed on the network, as illustrated in
Finally, Bank may also decide to provide intra-merchant or intra-bank services, together with the inter-merchant services described above. For example, if Bank creates a POSvc application for use by the Bank Payroll department, Bank may provide its own employees with a means for submitting timecards for payroll processing by the Bank's Human Resources (HR) Department. An employee selects the Bank HR POSvc application, and submits his timecard. The employee's timecard is processed by accessing the employee's payroll information, stored in the Bank's Back Office. The transaction is thus processed in real-time, and the employee receives his paycheck immediately.
B. Van Switching and Object Routing
As described above, exchange 501 and management agent 601, illustrated in
VAN switch 520 provides multi-protocol object routing, depending upon the specific VAN services chosen. This multi-protocol object routing is provided via a proprietary protocol, TransWeb™ Management Protocol (TMP). TMP may incorporate the same or additional security features as the traditional Simple Network Management Protocol, SNMP. It also allows for the integration of other traditional security mechanisms, including RSA security mechanisms, SET1, SET2, etc.
One embodiment of the present invention utilizes TMP and distributed on-line service information bases (DOLSIBs) to perform object routing. Alternatively, TMP can incorporate SSL, s-HTTP, Java™, CORBA, DCOM, the WinSock API, ORB or any other object network layer with DOLSIBs to perform and manage object routing. DOLSIBs are virtual information stores optimized for networking. All information entries and attributes in a DOLSIB virtual information store are associated with a networked object identity. The networked object identity identifies the information entries and attributes in the DOLSIB as individual networked objects, and each networked object is assigned an Internet address. The Internet address is assigned based on the IP address of the node at which the networked object resides.
For example, in
Each object in the DOLSIB has a name, a syntax and an encoding. The name is an administratively assigned object ID specifying an object type. The object type together with the object instance serves to uniquely identify a specific instantiation of the object. For example, if object 610 is information about models of cars, then one instance of that object would provide user 100 with information about a specific model of the car while another instance would provide information about a different model of the car. The syntax of an object type defines the abstract data structure corresponding to that object type. Encoding of objects defines how the object is represented by the object type syntax while being transmitted over the network.
C. Management and Administration
As described above, exchange 501 and management agent 601 together constitute a VAN switch.
Switching service 702 is an OSI application layer switch. Switching service 702 thus represents the core of the VAN switch. It performs a number of tasks including the routing of user connections to remote VAN switches, described in the paragraph above, multiplexing and prioritization of requests, and flow control. Switching service 702 also facilitates open systems' connectivity with both the Internet (a public switched network) and private networks including back office networks, such as banking networks. Interconnected application layer switches form the application network backbone. These switches are one significant aspect of the present invention.
Management service 703 contains tools such as Information Management Services (IMS) and application Network Management Services (NMS). These tools are used by the end users to manage network resources, including VAN switches. Management service 703 also provides applications that perform Operations, Administration, Maintenance & Provisioning (OAM&P) functions. These OAM&P functions include security management, fault management, configuration management, performance management and billing management for the service network. Providing OAM&P functions for applications in this manner is another significant aspect of the present invention.
Finally, application service 704 contains application programs that deliver customer services. Application service 704 includes POSvc applications such as Bank POSvc described above, and illustrated in
The Present Invention Applied to Internet Commerce
The goal of Internet commerce is to effect a valid financial transaction from any access point on the net with any other point on the net, spanning both public and private enterprise networks, in real-time, interactively.
Achieving this goal of true, real-time, N-way transaction interactivity requires a combination of:
(1) a many-to-many transaction interface, (2) multi-media archival and retrieval management, and (3) a viable switching model, all with the following attributes:
Currently, a user with a PC and a network browser can access the Web page of various merchants. The present invention extends this one-way browsing capability to N-way, real-time, interactive communication, beyond the Web into IP networks and other types of heterogeneous networks as described above. The present invention brings a remote cash register, telephone and mailbox into the end user's terminal. It reaches everybody and everywhere, much as the telephone does.
The present invention extends the same paradigms as are traditionally used to manage routers and network devices, to interactively reach and manage information. The present invention invigorates the interactive transaction paradigm by offering scalability, robustness, and flexibility designed to be deployed across an entire value supply chain from original manufacturer to point of purchase.
The present invention uses an N-tier Manager-Agent model to implement the N-way communication capability. One part of the present invention is a value—added network application that resides at the transaction Network Entry Point. The other part of the invention resides at remote IP nodes. The present invention includes an N-way interactive object router that provides the link between the consumers, the cash source, and the service provider.
An electronic commerce service provider, such as a Bank, will have to operate like a mini-Telco in order to provide services, such as business-to-business electronic commerce, or homebanking, via the Internet.
Thus, the following system requirements are needed:
The Object Router includes a library providing support for the application programming interfaces (APIs) to remotely access an object, its data and its functions in an object network. This interface provides two types of a class: a skeleton, which is the functionality of the object and its stub which allows remote access of the same object. It will be apparent to those of ordinary skill in the art that the items defined below represent an implementation of the preferred embodiment. Other embodiments will be apparent such as non-C++ and non-Java implementations and implementations such as within a DSP chipset.
The Object Router of the present invention allows the user to specify functions which can be executed remotely. The basic operation uses objects and class information, instead of simple, unrelated functions and data. The arguments to the function is specified in the meta file and the type of argument passing (by value or by reference) can also be specified.
The Object Router allows for new data types to be constructed, using the basic data types of the programming language used in the preferred embodiment: int and String. Single simple inheritance classes can be constructed and then used as data members or pointer within another meta class.
Also, the Object Router allows for a transparent remote or local operation. The programmer does not need to know whether the object is "local" or "remote". The interface automatically determines this and will allow for the correct operation based on the type of object.
There are several requirements for the Object Router to provide a clean and transparent operation of local and remote object.
A. Object Identity
This is needed for the Object Router to determine if the object is local (skeleton) or remote (stub). This is also needed to determine argument parameters and object serialization. This feature is provided in the preferred embodiment by the WxObject in the wx.lib library. Each new class "XYZ" must add a XYZ_ClassID, XYZStub_ClassID and XYZSkel_ClassID to the Wx/ClassID.h file.
B. Network Line Protocol/TCP
This is needed to communicate with the remote computer using some known alphabet. For the Object Router, WxRemotePDU provides this protocol data unit (PDU) and transmits the data using the RWCollectable data serialization.
C. Data Serialization
To transfer data between computers, the parameters and the objects themselves need to be sent over the network. This is the serialization of the data onto a network stream. The framework for this is provided by the persistence nature of RWCollectable. The code is generated by the meta compiler in the skeleton.
D. Data Marshaling
To ensure that all data is passed as arguments to a method requires the user to check all parameters and throw an exception, if there is something missing or wrong. This is provided by the meta compiler in the stub and skeleton.
E. Thread Rendezvous
To block a thread during network transmission and reception, the object must use a different thread to perform the actual network activity and control the calling thread status. This allows calling a remote object to behave similar to a local object. This is performed by the Rogue Wave RWCondition class in the WxRemotePDU class.
F. String Execution
This allows for a method to be called from an ASCII string representation. This is useful since it provides a simple, but unique means of calling a class method. This can also be used by the programmer directly. This data marshaling is created by the meta compiler in the base class.
G. Reference Counting
By maintaining reference counts in both the local and remote objects, time consuming malloc's and free's are avoided as well as confusing details of which function is responsible for deleting which object. This is provided by the Object Router in dealing with WxRemoteObject types. Likewise, the programmer must use reference counting. In other words, the user cannot destroy a WxRemoteObject child using delete (an exception is thrown, if this is tried), but rather the member function ol_unreference(). Also, if a user stores a copy of a WxRemoteObject child, it must indicate this by calling the method ol_reference(). Otherwise, the object may be destroyed by someone else. This interface is provided by WxRemoteObjectInt.
H. Abstract Base Class
To operate on an object without knowing its location (local or remote) requires an abstract class which forms as the base class. This is the base class, which is the parent of both the stub and skeleton. This is an abstract object (cannot be instantiated alone) and is created by the meta compiler.
I. Stub/Skeleton Multiple Inheritance
The client and server classes are inherited from the abstract base class and from their respective object layer classes. This allows them to inherit the functionality of the base class as well as the object layer routines. This is created by the meta compiler.
J. Meta Compiler
All of the above features need to be coded by hand unless there is some automated mechanism to do this. The Meta compiler takes a definition file and creates (using TCL or other encoding) the above requirements: Object Identity, Data Serialization, Data Marshaling, String Execution, Abstract Base Class, and the Stub/Skeleton Multiple Inheritance. If one were to code all of this by hand for even the simplest class, there would be too many errors to even manage. The meta compiler (rme2c) eliminates these errors.
K. User-defined Data Model
This is the user created set of classes built around and on top of the Object Router APIs. This is the basis of the object layer to the next level up the software layers. This foundation appears local to the programmers using the object layer even though it may be remote.
There are only certain parts of the Object Router, which the programmer needs to be aware of. The most important is the base class WxRemoteObject. As shown in
The abstract base class not only contains all of the member methods and data access components, but it contains support functions which provide a uniform interface to behave as a WxRemoteObject. This includes:
The skeleton represents the server side of the Object Router. This is a class, which is derived off the abstract base class WxName (in the diagram) and WxRemoteSkel. All of the methods (except data access components) must be defined by the programmer for the skeleton since this is the actual object. Whenever a real instance of the class is created, it will have the suffix "Skel".
WxRemoteStub (Client)
This is the client (or remote) side of an object. This is similar to the skeleton because it too is derived off the abstract base class WxName and an object layer class WxRemoteStub. However, there is nothing for the programmer to define for this class. All methods are generated by the meta compiler.
Meta Compiler
This is a TCL program in the preferred embodiment, which creates the three classes: abstract base, stub and skeleton. For each class an interface file (header file .h) and a C++ definition file (source code .cpp) is created. It will be apparent to those of ordinary skill in the art that the implementation defined below represents an implementation of the preferred embodiment. Other embodiments will be apparent such as non-TCL, non-C++ and non-Java implementations and implementations such as within a DSP chipset.
Style Issues
The StringExecutionInt class prepends all of its member functions with "se_". Likewise, the object layer classes all prepend their member functions with "ol_". This is needed to avoid any name-bashing with derived classes which are built using the base classes created by the meta compiler.
In addition, in the skeleton, all member data is prefixed with "_" to remind the user that the data is local to the object and usually protected.
Any modification of local member data within a skeleton should be guarded by ReadLockGuard or WriteLockGuard when accessed since other threads may be sharing this data.
All skeletons are suffixed with "Skel" while all stubs are appended with "Stub".
When passing WxRemoteObject derived data, it is also passed with a pointer. However, since it is unclear from this alone who has ownership of the data, the suffixes "_ref" and "_val" are added by the meta compiler to indicate if the data is passed by value or reference. If it is passed by reference, the function then will return a pointer, which has had the reference count incremented. If passed by value, the data is copied from the original source and the receiver should unreference this with DeleteObject.
To indicate if a data member is passed by reference, append an asterisk "*" to the data type in the "data" declaration section of the Object Router meta file. This is also true for return types in the "method" section and as arguments to methods.
This header file contains all ClassIDs for the base classes and their stubs and skeletons. The programmer should place the object ID in this before running the Object Router meta compiler.
These files are included from the Object Router meta file to add additional functionality to the base, stub or skeleton. If, for example, a function void xyz() needed to be added to the XYZ skeleton class, then add to the XYZ.rme file:
This will then include the simple declaration "void xyz()" into the header for the skeleton and also include the definition for xyz() from the XYZSkel.cc file. The advantage to using the suffix "cc" or "hh" over "cpp" and "h" is because the Object Router meta compiler uses those suffixes for the final XYZ files.
These files are automatically generated by the Object Router meta compiler for the base, skel and stub. If the programmer wishes to add information to these files, see the examples above. The programmer should not, however, edit the cpp or h files directly. The programmer should be able to fix anything by modifying the rme file and recompiling.
Strings used in the object layer may be passed either by value using RWCString and "const char*" or by reference using the RWCollectableString (aka String). In some cases, the programmer knows which version is most desirable: pointer or static object. Based on programmer need, the programmer can choose either the function foo() which returns the string by value or foo_ptr(), which calls the same function but returns a copy of the string on the heap as a pointer.
For each data member, two data access components are automatically created for the data: "get" and "set". There, however, are complications to these, based on the type of data.
This is used by running the command:
rme2c <classname>
where the classname is the base class (such as Account). The Account.rme file must be in the same directory as well as other parent definitions.
The Object Router TCL files are found under Wx/Util. These files parse the description file and produce the six C++ output files.
In the preferred embodiment, the syntax must be adhered to closely. Blank lines and lines beginning with a pound sign "#" are considered comments.
The following words are reserverd:
1. include [c*,h*,j*,*base,*skel,*stub]
This adds verbose code to be added to one of six files: cbase, hbase, cstub, hstub, cskel or hskel.
The ends the verbose inclusion.
3. header <class>
This indicates that the compiler will wait for the header section to complete.
4. beginclass <class> [<parent>]
This indicates the class name and any parent.
5. begindata
This signals the begin of the data section
6. data [<perm>] <type> <name>
This is a data definition statement.
7. enddata
This is the end of the data section.
8. beginmethod
This is the beginning of the method section.
9. method [const] [<perm>] <return_type> <name> [{<arg1_type> <arg1_name>}, . . . ]
This is a method definition.
10. endmethod
This is the end of the method section.
11. endclass
This is the end of the class definition. It should be the last statement in the file.
Operational Overview
The simplest way to introduce the operation of this object layer is through an example.
Referring to
Object Router Data
The programmer must first create a definition file describing the WxBank and WxBankAccount objects. This is written in a simple language, which is parsed by the rme2c meta compiler of the present invention.
The WxBankAccount file is written as:
This class contains not only methods but also data. In this case, the data is simply an integer describing the amount of money the account holds. The two methods: deposit and withdraw, simply increment and decrement this amount, respectively.
Notice that the programmer should add the lines:
The above file (WxBankAccountSkel.cc) defines the skeleton methods. All the stub methods are defined by the rme2c meta compiler.
For the Bank object, the Bank.rme file would look like:
This file, when processed by rme2c will create six files: WxBank.h, WxBank.cpp, WxBankStub.h WxBankStub.cpp, WxBankSkel.h and WxBankSkel.cpp. These six files describe the operation and remote execution of the WxBank object. Since there is no data, there will be no data access components generated. The method "getAccount" requires some explanation. The line below defines this method:
The first keyword "const" identifies that this method will not change the object data. The next keyword is the returned object "WxBankAccount*". The asterisk identifies that the object will be passed by reference. The method name is next. Then, all of the parameters follow. In this case there are two. Each parameter is enclosed in braces and contains the data type and the parameter name. In this case there are two integer parameters with name id and pin. The programmer, however, must still describe any additional functionality for the operation of this object and the definitions of the skeleton methods (contained in the WxBankSkel.cc file). The WxBankSkel.cc file would contain:
This example is a very simple one in which getAccount will always return bob's account. There are two things to notice.
The client and server are now simple. The server side creates the skeletons and registers them in the name server:
The client program is just as simple:
The major benefit demonstrated above is that the programmer does not have to know, nor care, whether the object "bob" is local or remote.
Architecture Details
Design Considerations
There are a number of trade-offs and considerations taken into account during the creation of the object layer. These are briefly described below:
Class Overview
Referring to
This is the interface that all remote objects must have. It contains several abstract class definitions, including WxStringExecutionInt, WxLock and WxFlags. Plus, it defines several methods used for all remote objects.
This should be tested if the programmer does not know if this object is local or if the connection is established. This will return TRUE if the object is local or it has a connection to the remote object.
This returns the number of pointers outstanding for this object. Typically, if garbage collection is enabled, this object will automatically be destroyed when the referenceCnt reaches zero.
This is the remote referenceId for this object. This WxReferenceId uniquely tags an object instance on the server for the established connection. This is not a well-known name in the sense that it is not guaranteed to be the same with a difference connection.
This increments the number of references outstanding. This needs to be performed whenever a new copy of the pointer is stored.
This decrements the reference count and should be called instead of delete.
This simply type casts this instance to an RWCollectable pointer.
This will return a stub for this object. If this object is local, it will create a stub. If this is already a stub, it will increment the reference count.
This will return a skeleton for this object. If this is a skeleton, it simply increments the reference count. If this is a stub, it will create a new skeleton, copy the data and return it.
This will create a WxRemoteReference object which is only used for serialization.
This is the actual first level implementation of the above interface and adds String Execution to the above functions. From this object, all of the Object Router objects are derived.
This is a type of network "pointer" which indicates where the actual skeleton object resides. It contains the following data:
Port and host are used to uniquely specify the socket for the WxRemoteConnectionServer. The referenceId is used to uniquely specify which object on the WxRemoteConnectionServer this points to. The classID is simply used to construct a local stub object.
All stubs are derived from this object and the abstract base object for the class. This object provides some interfaces to the Object Router library, which is used by the meta compiler.
This will block until ol execution is finished. It will take the pre-formatted PDU.
This is a non-blocking remote execution, which returns a WxMarshalId, which can be used to receive the result.
This checks if the PDU id is returned from execution.
This blocks until the PDU is returned.
This ensures the connection to other side is established.
All skeletons are derived off this object and the abstract base for the class. This object provides the interface ol_methodPDU() for the meta compiler to the Object Router.
This is the actual data packet sent across the network. The data in this are:
This is the PDU packet number. This is a monotonically increasing integer to uniquely identify the packet.
Option flags to modify the execution of this protocol. The current options are:
This is one of several known protocol operations:
This is the ASCII string command to execute on the remote server. This is the "name" in a Name-Value pair.
This is the object WxReferenceId on the server to uniquely the object of this PDU.
This is the data for a method execution. This is the "value" in a Name-Value pair.
This is the main class on the server side of the Object Router. This is the entry point into the system for a WxRemoteClient requesting access. This is similar to a phone operator who directs incoming calls to the correct person. That person, in this analogy, is the WxRemoteServer.
This is the main class on the client side of the Object Router. This is the entry point into the system for a connection and to create a WxRemoteClient for a particular destination. This is similar to a phone operator who directs outbound calls to the correct person. That person, in this analogy, is the WxRemoteConnectionServer.
This is server side of the client-server communication channel that processes each inbound request. The WxRemoteServer will spawn a new thread for each WxRemotePDU method packet. There is always one WxRemoteServer for a
This is the client side of the client-server communication channel that sends each outbound request and rendezvous' with the inbound response. There is always one WxRemoteClient for a WxRemoteServer.
This is the class, which is thrown by both the client and server side whenever an error is detected. All of these are fatal and are non-recoverable.
This is the class, which is thrown by both the client and server side whenever an exception is detected. None of these are fatal and the user should provide recovery code.
Referring to the timing diagram illustrated in
The vertical lines in
System Requirements
In the preferred embodiment of the present invention, the following conventional computer components may be used to implement the present invention.
Intel brand personal computer (PC), Unix workstation or Unix server, or network appliance or device on a DSP chipset.
In the preferred embodiment, the software is compiled under Windows NT3.51 and 4.0 using the Microsoft Visual C++ compiler 2.1. This requires the wx.lib, and the Rogue Wave libraries: Tools++, Net++and Threads++, Unix, WinNT server, or DSP chipset. It will be apparent to those of ordinary skill in the art that the system items defined above represent an implementation of the preferred embodiment. Other equivalent embodiments will be apparent to those of ordinary skill in the art.
DOLSIB Architecture Introduction
The present invention also includes a dynamic DOLSIB, the Distributed Online Service Information Base of the Object Router. The following sections cover an overview of the architecture for the DOLSIB, as the enterprise needs to be customized for each Merchant. To accomplish this, a uniform interface is provided which will allow the Merchant, to provide a customized interface for the business or management objects using a simple Extended Finite State Machine (ESFM) or DOLSIB language. A library provides the core parser and interpreter for the DOLSIB. It also is the base class for business and management objects, which will interface with the enterprise interface.
1. Glossary
The architecture of a business object in the preferred embodiment requires four parts:
The first item (DOLSIB and CoreBusinessObject or management object) is built once. This is part of the Object Router library. The second item is built as a common business object and should be generic enough to be configurable for different merchants. The third item is a specification that must be written by the merchant for his own enterprise interface. The fourth is configurable during runtime for different business or management objects.
The following sections discuss the DOLSIB and CoreBusinessObject or management object, as well as show an example BankAccount object which has two different merchant enterprise interfaces.
As shown in
In a formal FSM, the set of states is indeed finite. However, often an extended FSM, called the dynamic DOLSIB, is needed. Here the states are not finite, per se; there exists a number of finite state "blocks" on the diagram, but there are also global variables which may store values which may take on an infinite number of possibilities. This adds another dimension to the FSM and makes the whole system have an infinite number of "states".
As an example, consider a simple counter that receives an input trigger and outputs an integer one greater than the previous output. The input event is anything. The output action is the integer "count". In the formal FSM, there would need to be a state for each possible integer value. If the counter had a limit of 10, then there would be eleven states: an initial state and one for each output value (see
However, if an extended FSM or DOLSIB is used, there would only need to be one state. This is the idle (or initial) state. The counter would simply output the count value and increment this value (see
The following section describes the architecture of a DOLSIB C-like language and its use in the present invention. For example, the above counter would be written in the DOLSIB language, as shown below:
This allows the user of the DOLSIB to simply describe the events and actions of the machine in an easy to write and read language. The above describes the Counter diagram beginning in the Idle state. If the Counter is in the Idle state (which it always is), then given the count event, it will increment the variable value and output this as an action. The arrow "→" signifies that the new state is to be Idle.
The Enterprise Interface State Machine (EISM) DOLSIB language of the preferred embodiment is a C-style DOLSIB EFSM language similar to ISO's Estelle. The major difference between the two is the language on which they are based. DOLSIB EISM is based on C style conventions, while Estelle is a Pascal language extension.
The language of the DOLSIB EISM has several features listed below.
The ISO Estelle language is defined as a superset of the Pascal language and fits nicely with the language. The DOLSIB EISM language is similar in that it conforms to the syntax of C.
The DOLSIB EISM language provides for more than one state machine diagram (and thus, more than one state machine) to be described and operated by the same script.
The state machine is interpreted allowing for bytecode compilation into a stack machine opcode.
The stack machine allows for a simple implementation and compilation of the parsed state machines. This also allows for other languages in the future.
The C-style language is easy for the vast majority of programmers. But as mentioned above, if this is not useful, another interface may be designed on the stack machine.
The programming language includes a simple ASCII English language equivalent of the C-style convention.
Referring to
As shown in
The parser will take the input ASCII, parse it for syntax and syntactical errors, and then create a stack machine instruction set for the resulting state machine. The conversion of the state machine diagram into a stack machine saves time for the run time interpreter and does the preprocessing of the symbol table.
The interpreter is now just a simple stack machine, which does receive input events and sends out actions. The stack machine contains a very limited set of instructions, which simply perform the basic arithmetic and conditional chores at run time.
The dump program is the only debugging tool, which simply prints out the symbol table and the instructions for each stack op code.
Symbol names may be any alphanumeric string ([A-Za-z_][A-Za-z—0-9]*) which does not match a keyword. Symbols are always case sensitive.
All symbols must be declared before use and before the first diagram body. Symbols of the same type may be declared within the same command. Any symbols may be a scalar or vector. The length of the vector must be declared with the symbol type. Valid declarations would be:
However, the following are not valid symbols:
There are five types of symbols: diagram, action, event, state, var. All symbols have a value when evaluated, and all have a particular function used as an input to the DOLSIB EISM. The following table shows their respective evalutions:
The next table shows their action when entered into the DOLSIB EISM. This is quite different from their action within a program. Every symbol type, which enters the DOLSIB EISM also carries an assignment value which it uses in the following way:
The above assignments within the DOLSIB EISM program are valid with the exception of state. This is because the state is a read-only condition of the current system and cannot be modified. If the programmer wants to change the state of the diagram within DOLSIB EISM, one may use the diagram assignment.
For each declared symbol, there exists an integer ID. The integer ID begin with zero (for the variable "nil"). This variable is always declared and may be used as an event, which does nothing but trigger transitions. All other symbols are assigned starting with one in the order in which they are declared in the program. Hence, if one changes the order, the symbol Ids will change. Also, an integer is assigned to each element of a vector. The previous example would have Ids as:
This section outlines a typical program and the possible statements in DOLSIB EISM. Every program must have all of its symbols declared as one of the five types followed by at least one diagram.
Consider as an example the simple state diagram that counts the number of incoming count events and dumps the count upon receiving the event dump. This state diagram could be written in DOLSIB EISM as:
Notice that all of the symbols are declared. The state diagram is named Counter and the line
The state transition may be described in many different formats. The one shown above would have the following meaning:
If in state Idle
This state transition may also be written in DOLSIB EISM as:
if Idle and count then n++ enter Idle
This form is more understandable initially and may be preferred. In either case, the keyword "if" is optional and the following table shows which keywords and symbols are interchangable.
A final variation on the command structure is the ability to specify outputs without the parentheses. The normal meaning of n() would be to output an action which has an ID of n and a value equal to n. One could specify, for example, n(5) which would set the value of n to five and then output n. One may also explicitly output a symbol as:
The grammar is specified similar to BNF form. Brackets "[ ]" surround those items which are optional. A vertical bar is used to show alternatives. Bold symbols are actual keywords
All business or management objects must interface with the back-end channel to communicate with the enterprise computer. Hence, the core business or management object, off which all of the business or management objects derive, must have embedded in it the FSM to be able to parse the EISM DOLSIB configured with diagrams.
The core business or management object must be remotely accessible and therefore must be integrated within the Object Router. It has the interfaces for the enterprise interface and the FSM.
Example Application (BankAccount)
The back end communication channel must be customized for each customer for their given application. Since this back end channel will be different for each customer, a program capable of handling the different capabilities and customizable features per customer is needed. As illustrated below, consider a simple bank account class, which has a balance query and withdraw and deposit methods to change the account balance:
Given this object, the programmer can query the account balance from within the object-oriented C++ environment. However, the actual mechanics of talking to the back end may vary from merchant to merchant. Therefore, an intermediate machine needs to connect with the back-end to communicate using a name-value pair protocol, which is modifiable.
Consider two banks, B1 and B2. B1 may query the back-end for a balance of an account by sending the account number and then the word "balance:query". This can be summarized as follows:
The other bank B2 may require the account number being set, receiving this confirmation and then send the "balance" query. This can be summarized as follows:
The second bank B2 contains more steps and can have more error conditions. As illustrated in
The FSM diagram illustrated in
As shown in the above description, often the merchant will be expecting something from the enterprise interface. Instead of creating a new state for each such "expect" string, one can make use of a predefined set of states "Expect", "Found" and "Error". The only state transitions defined are for the "Expect" state. Referring to
The diagram illustrated in
For a single expected string, the use is straightforward. However, to use the expect state for more than one string (more than one expected response), one must make use of the "extended" nature of the DOLSIB EFSM. Namely, one must use global variables to store the other dimension of state. This is shown with the second Bank example using the variable "step".
For the other bank (B2), the finite state diagram would be a little different as shown in
These two bank examples show how different merchant back-ends can make use of the same business or management object.
The bank object class structure was shown above. However, since this will be derived off of the CoreBusinessObject or Management Object (
After compiling this Object Router object, one can then add the hooks to provide the method connections to the FSM for this particular business object.
The balance method simply calls the FSM event "balance" which starts the diagram transition from Idle to Expect (see
These two examples show that the method fsm_result() is called even when not expecting a result. The reason for this is twofold: 1) the thread will block until result is actually called inside of the FSM and 2) an error result will throw an exception within this fsm_result.
Thus, a configurable value-added network switching and object routing method and apparatus is disclosed. These specific arrangements and methods described herein are merely illustrative of the principles of the present invention. Numerous modifications in form and detail may be made by those of ordinary skill in the art without departing from the scope of the present invention. Although this invention has been shown in relation to a particular preferred embodiment, it should not be considered so limited. Rather, the present invention is limited only by the scope of the appended claims.
Patent Citations
Non-Patent Citations
Referenced by
Legal Events
Original Image


text:
By: Jill
When you wish someone joy, you wish them peace,
love, prosperity, happiness... all the good things.
Author: Maya Angelou
Add your tips, poems, quotes, or title ideas to share with other members.
We'll send you beautiful layouts, innovative project ideas, free classes and more. Subscribe below!
Follow us on your favorite social networks for news and inspiration!

subset: commoncrawl


text:
Narrow your search
In case you don't speak geek, these deals are all about Web privacy, multifunction printing, e-books and more.
CNET highlights eight impressive smartphones that showed outstanding battery life in our labs' performance tests.
In projectors designed for both the cinema and at home, lasers are starting to replace traditional lamps as the light source of choice. This is potentially awesome. Here's why.
The Future of Life Institute wants humanity to tread lightly while developing really smart machines.
The move comes amid a handful of other leadership changes, with Intel Capital's head retiring and two other executives departing.
New features and enhancements and no significant bugs in the new build are good signs ahead of the official July 29 release of Windows 10.
Letters from young fans of comic star fashion model-cum-amateur sleuth Toni Gayle from the 1940s are both endearing and fascinating.
The billionaire activist investor has a history with Apple, including getting CEO Tim Cook to take steps such as boosting the company's share repurchases.
Apple publishes new webpage that explains how it handles its users' personal information and government requests for that information.
The Future of Life Institute, which aims to protect humanity from the possible negative effects of artificial intelligence, awards the cash to 37 research teams.


text:
aexpatchutil /f - Does this work in SMP 7.1?
I've been trying to get this to work for hours and have been unsuccessful. At this point I'm just trying to ascertain whether this even still works in SMP 7.1.
One issue appears to be syntax-related, the other linked to perhaps a GUID issue. I'll cover them both.
I've tried a couple of different command lines:
- aexpatchutil /f {4E2A75A9-F685-4E80-BBBF-0DE7156818DD} --curly braces
- aexpatchutil /f (4E2A75A9-F685-4E80-BBBF-0DE7156818DD) -- parentheses
- aexpatchutil /f ({4E2A75A9-F685-4E80-BBBF-0DE7156818DD}) - both
- aexpatchutil /f 4E2A75A9-F685-4E80-BBBF-0DE7156818DD - no braces/parentheses
- aexpatchutil /f 4E2A75A9F6854E80BBBF0DE7156818DD - no braces/parentheses or dashes
Running 1 or 4 gives me this:
Altiris (R) Software Update Plug-in
Copyright (C) 2010 Symantec Corporation. All rights reserved.
Software Update Plug-in Command Line Interface
Force Install passing to agent ...
Forcing software update installation...
{4E2A75A9-F685-4E80-BBBF-0DE7156818DD} is an invalid software update guid.
Press any key to continue . . .
Running 2, 3, or 5 gives me this:
(4E2A75A9-F685-4E80-BBBF-0DE7156818DD) is not a valid guid.
Altiris (R) Software Update Plug-in
Copyright (C) 2010 Symantec Corporation. All rights reserved.
Software Update Plug-in Command Line Interface
Force Install passing to agent ...
Forcing software update installation...
Press any key to continue . . .
In Log Viewer, 1 and 4 gives you an error: "ForceUpdateInstallation() - software update guid {4E2A75A9-F685-4E80-BBBF-0DE7156818DD} does not exist."
2, 3, or 5 do not. You get the following entries in Log Viewer:
AeXPatchUtil: Starting aexpatchutil /f (4E2A75A9-F685-4E80-BBBF-0DE7156818DD)
AexPatchUtil: started
AexPatchUtil: Forcing software update installation...
AexPatchUtil: ForceSoftwareUpdateInstallation()
AexPatchUtil finished
But nothing seems to happen - no installation can be seen in Task Manager and no installation occurs.
I've pulled the GUID from every possible place I can think of:
- From Manage ~ All Resources ~ Package ~ Software Package; click right-on an update, click Properties, then grab the GUID
- From the folder name on the local system, e.g. C:\Program Files\Altiris\Altiris Agent\Agents\SoftwareManagement\Software Delivery\{51095215-1685-BA40-43B7-9BC0CAD571C2}
- From the share name on the Site Server
I'm assuming #1 is correct but I'd love confirmation.
Thanks for any help anyone can provide.
Comments 1 Comment • Jump to latest comment
Hello jbonbright,
You are right. Correct using of AexPatchUtil.exe tool is option #1 of your list: aexpatchutil /f {4E2A75A9-F685-4E80-BBBF-0DE7156818DD} -- curly braces
It looks like you have used wrong GUIDs. I used GUID included to http source location path and it worked. You can find it in Source location tab of Package properties. Also you can get this GUID from name of folder on NS, where downloaded update is stored (By default it is C:\Program Files\Altiris\Patch Management\Packages\Updates\<bulletin name>\<GUID>)


text:
Protoner is one of the renowned names in the field of fitness equipment. From dumbbells to weight training machines, they have it all. Thousands of loyal customers prefer their products all round. Their superior quality fitness equipment is wanted by millions of customers. Apart from fitness gear they also deal in fitness accessories like push up bar, chest expander, hand grips and much more.
Please Note: We do not offer installation services on any fitness equipment.
Guidelines to buy Home Gym Products:
1. Workout Goals: Home gym products are ideal for performing strength training exercises for Chest,Back,Shoulders,Biceps,Triceps and Calves
2. Maximum Weight: Whether it is a single machine or a series of dumbbells,both have weight limitations with a maximum amount of weight that can be added. There are free weight based machines that are able to hold as much weight as you can lift.
3. Product Options:
- Single Machine-Multiple exercises/Multi Gym:  There are machines which enables you to perform multiple strength training exercises. Some machines enables the user to adjust seat,volume of weight,resistance etc according to the workout.
- Weight Lifting Packages with or without Exercise Bench: Weight lifting packages usually includes steel/rubber plates and iron rods. The weights can be customized according to user's requirements.
- Weight Lifting Packages with Exercise Bench & Other Accessories: These packages usually includes steel/rubber plates, iron rods, exercise bench,wrist bands, gloves etc. The contents usually varies from product to product.
4. Importance of Exercise Bench & Accessories: Without an exercise bench, strength training would be incomplete. An exercise bench allows the user to utilise the weight lifting packages in the best possible ways and performing multiple exercises. There are a number of exercise benches available which allows the user to perform single/multiple exercises. The selection usually depends upon the user's requirements.
Also, Wrist bands, Gloves, Belts, Knee/Elbow
& Waist supports and other accessories are essential as it equips the
user's body with necessary support which is required for strength training.
Ask your Question :
Question Type :
Nick Name :
Your Question :
Question Type :
Nick Name :
Cool! Your question has been submitted.
Our masterminds are working on getting an answer. We will send you an email about it within 48 hours.POST A NEW QUESTION
Error While Submitting the Question. Please Try AgainTry Again
Displaying questions


text:
Putt like it's your job with this tabletop golf mug. Decorated like a golf course with a little hole in its base, this porcelain mug includes a putter pen golf club and teeny golf ball, so you can practice your game right from your desk.
Set includes usable mug with small hole at its base, golf club that doubles as a pen, and a small golf ball. Mug is approximately 5" high with a 3.25" diameter.
This product has no reviews yet. Be the first to review this product. Write a review
Enjoy 10% off your first order*


text:
Does the HK charge iPhone 4 or fit with Apple Bumper?
- Asked by Susan V from El Cajon
Harman Kardon SoundSticks III 2.1 Channel Sound System
Product No Longer Available
1 Answer from the Community
No they do not. it's just two speakers and a subwoofer with an audio out cord.
- Answered by Trevor H from Kensington


text:
Primary Care Doctor, Family Practitioner
28 years of experience
28 years of experience
2776 Cleveland Ave
Fort Myers, FL 33901 Phone number & directions
Fort Myers, FL 33901 Phone number & directions
License & Identifications
A medical license is required for a doctor to practice medicine in a particular state. Requirements vary by state but most require, at a minimum, post-graduate training in the doctor's specific specialty. An NPI number is a national identifier unique to an individual health care provider and is managed by the Center for Medicare & Medicaid Services (CMS).
Learn more about Dr. Glen Fortier:
View the full profile to get information on:
- Qualifications
- What's important to you
View full profile
Patient Reviews
Have you visited Dr. Fortier? Share your experience.
Write a Review
Write a Review
Specialties & Research
Dr. Glen Fortier, MD is board certified in Family Medicine.
Education & Awards
Dr. Fortier graduated from Rosalind Franklin University, North Chicago.
Dr. Fortier has 6 hospital affiliations:
- Southwest Florida Regional Medical Center
- HealthPark Medical Center-Lee Memorial
Home > Find a Primary Care Doctor > FL > Fort Myers Primary Care Doctors > Dr. Glen Fortier, MD
Similar doctors nearby
Dr. Jinoo Lee
Family Medicine
7 years experience
Fort Myers, FL
Dr. Juanda Vinodhkumar
Family Medicine
7 years experience
Fort Myers, FL
Dr. Gary Goforth
Family Medicine
31 years experience
Fort Myers, FL
Dr. Julia Fashner
Family Medicine
14 years experience
Fort Myers, FL
Dr. Michael Raab
Family Medicine
34 years experience
Ft Myers, FL
Dr. Christina Cavanagh
Family Medicine
4 years experience
Fort Myers, FL
- Additional Information
- Dr. Glen Thomas Fortier MD is a male Family Practitioner, has 28 years of experience and practices in Family Medicine.
- Where does Dr. Glen T. Fortier practice?
- Dr. Glen Fortier has 1 office location.
Dr. Glen Fortier practices Family Medicine near Fort Myers, FL.
See Fort Myers Primary Care Doctors.


text:
|Search for Kristin Luckenbill
United States
Age: 23
Date of Birth: Oct. 8, 1980
Hometown: Placentia, Calif.
Current Residence: Vail, Colo.
Sport: Women's Soccer
Position: Goalkeeper
Height: 5-7
College: Dartmouth
Professional team: Carolina Courage (2001-03)
Previous Olympics: None.
Previous national team experience: 4 caps; first appearance April 24, 2004.
Career national team stats: 1-0-1, 1 shutout.
Career highlights: WUSA goalkeeper of the year in 2002 with a record of 12-5-4; three-time All-American at Dartmouth.


text:
Dear Member,
"Life is full of festival"
To recapitulate, last we met for Deewali get-together. Now aging we are meeting through this medium in New Year. I hereby wish everybody merry Christmas and a great prosperous new year.
GIHED is growing faster and denser, making deep inroads in our industry. We all witnessed in the Deewali gathering. A large number of member were alone with their family to enjoy the festivity.
At GIHED we all discussed and designated task among various committees and they are working on a planned agenda to execute the same with their best efforts. We also divided our city in five zones and each zone is having its own agenda of working and priority of tasks. It is humble step to groom more members for delegation and leaders.
We arranged a seminar on services tax scheme of VCES [Voluntary compliance encouragement schemes]. It was very successful as many members attended and actively participated in discussion also. I am pleased to convey that as a fall out of this seminar, the authorities of service tax came to GIHED office and they addressed the grievances of our members. It is quite remarkable to note down attitude and approach of the gov.dep. and at the same time it is the acceptance and strength of our institute.
We are builders are morally, ethically and legally strong businessman. We are not the speculator but we are fuelling the growth engine of the society.
We are making resolution of New Year!!and that is to form a legal desk or legal cell supported by GIHED to see the disputed matters with the eyes of law and find a way of solutions for the same.
In ordered to strengthen our institute, we are going to start a drive; a campaign for those who have not join GHIED yet. Member is the strength of the association; and active members are the fragrance of the institute. I appeal every member to be active, and your suggestions are always welcome the desk.
Again I wish you great, progress, prosperity and peace in New Year.
Yogesh Bhavsar
Let me share the facts which are published for Ahmedabad reality sector world wide-
The return on investment from the residential property are through rental income in the Tier 1 cities in the India is one of the lowest in the world. If one task into account the capital appreciation the returns surge 20% compounded annually; one of the highest in the world.
ROI for the commercial rental property, Ahmedabad is ranked fifth In the world.
View Former President | President Profile


text:
2015 ROTC Orientation
For incoming Freshman
August 18-19
Click for more information
Fall Semester 2015
August 24-December 11
ROTC Commissioning
December 12, 2015
Dr. Joseph Hasper
ROTC Enrollment Officer
U.S. Army ROTC
Wright Hall 207
1871 Old Main Drive
Shippensburg, PA 17257
Telephone: 717-477-1896
Fax: 717-477-1783
www.army.mil - Official Homepage of the US Army
goarmy.com/rotc - Learn more about Army ROTC
Army Reserve - All about the Army Reserves
National Guard - Official website for Pennsylvania Army National Guard
click on image to view larger image.
This page is an official publication of Shippensburg University: A member of the Pennsylvania State System of Higher Education.
Shippensburg University - 1871 Old Main Drive - Shippensburg, PA 17257 - (717) 477-7447
Ask a Question/Provide Feedback | Right-to-Know Policy | Privacy Statement | View on Mobile


text:
Chicken Supreme Crepes, Microwaved
|Corn oil margarine
|1⁄4 Cup (4 tbs)
|1 1⁄2 Cup (24 tbs), sliced
|1⁄3 Cup (5.33 tbs)
|Chicken broth
|1 Cup (16 tbs)
|1 Cup (16 tbs)
|Parmesan cheese
|2 Tablespoon, grated
|Onion powder
|1⁄4 Teaspoon
|Cooked chicken
|2 Cup (32 tbs), diced
|Sliced pitted ripe olives
|1⁄3 Cup (5.33 tbs)
|12 (Prepared)
1) In a 1-quart casserole, allow margarine to melt by microwaving it at HIGH for 30 seconds.
2) Stir in mushrooms, cooking for 1 minute and then transfer them to a dish.
3) Make a smooth paste by mixing flour and part of chicken broth alternately into liquid left in casserole.
4) Pour in remaining broth, milk, cheese and onion powder and cook the sauce for 6 minutes, stirring every 2 minutes.
5) Reserve 1 cup sauce and add mushrooms, chicken and olives to remaining sauce, mixing well.
6) Spread 1/4 cup chicken mixture on each Crepe.
7) On six small serving dishes, place the crepes and cook them for 3 minutes in two batches.
8) Allow the reserved sauce to be heated for 1 minute.
9) Spoon the sauce evenly over crepes.
10) Serve immediately.


text:
MY daily post.
Also, guys and gals, i made us a Pokemon Online Channel on the main server.
The channel name is The Battle Corp.
and to You leaders, i will will give you all auth/ownership when you log on.
Opponents Username:Zekrom4
Opponents Rank:Cleaner
Your Ranks:Office Worker
Win/Loss-Score:Win 2-0
Any other information: It was OU. GG!
Come to SerebiiHangout! Where Serebii members can chat, hangout and organize clan wars. http://xat.com/SerebiiHangout
Got back from my little trip visiting my sister, might pick up some stuff later on...
On other notes got my Report Card... (Sorta want to brag(not really), but I am disappointed in myself so I will share with you guys.... I'm bored)
Spanish 2 96
Global Studies 1H 93
Studio Art 96?
English 9H 97... Wish it was higher..
Living Environment H 91 Really disappointed in this...
Geometry R 95 :/
Physical ED 9/10 95....
Meh... Now I might make a new team.... Nah
Last edited by Turpoo; 23rd November 2012 at 8:30 PM.
Voting CB Terrakion
D- Grade PASBL Ref- Squad
Im sooo happy! I got White 2 and i caught a Admant Riolu!!!!
Come to SerebiiHangout! Where Serebii members can chat, hangout and organize clan wars. http://xat.com/SerebiiHangout
Opponents Username:Arcos
Opponents Rank:Office Worker
Your Ranks:Intern
Win/Loss-Score:Win 5-0
Any other information:GG
I'll put something here...eventually
Name: Gijutsu
PO Name: Gijutsu
Why you want to join: clans look fun
Number of SBF Symbols: 0
Battling Experience: not much
Referrer: no one
Voting latios, seeing how the team is actually VERY fighting and ground-weak especially if terrakion was added. Though the dragon would have a hard time dealing with the hail
Also, welcome to the clan, Gijutsu.
Y / Alpha Sapphire FC: 0516-7504-1357
IGN: Tech
Friend Safari (Psychic): Espurr, Gothorita, Abra
Available times: PST, weekdays (7:30 pm-11:00 pm) and weekends (1:00 pm-11:00 pm)
Competitively Bred (some have 5 IVs, HA, and/or Egg Moves):
-IV-bred competitive Pokemon I don't have
-Shinies and Events
Ouch I need to finish my tournament battle fast...
Here's Maractus in action :3
Maractus: Saving sun team's *** since today
Beat Darkfire 3-2 for the tourney :3
Round 2 Has Begun!
You have until Saturday December 1st to complete your battles.
Activity wins have been awarded, if activity was not clear wins were chosen by random.
Woah... Danger v.s steve? Lol gonna go watch that
That was pretty fast... or maybe i did my battle later :3
EDIT: When I wake up tomorrow, SAO will be up... WOOOO!!
@ Sonic Can we finish the battle by Tuesday? I have a band camp to go to :/
nice round 2
ccat poll is
Hey i have entered in this clan at the begining but a got admit that i wasnt much into the pokemon online simulator since a only wifi battled for the last years.
However i am now enjoying the battle simulator and already created some teams who have been winning every fight.
Is there a chance for battling in this clan tournaments?
White Version fc : 4213 0871 4875
White 2 Version fc : 4599 7665 6557
Pokemon Y fc: 1864 9842 8661
PM me for a battle.
Swimming is a sport, everything else is just a game
Alright my vote for the CCAT is because Scuba is right saying that we have a major ground and steel weakness. With Breloom, we can get a priority move and get rid of some the ground and steel weaknesses that we have.
(Credit goes to Brutaka!)
Ruby won. GG! So Ruby goes to next round.
Come to SerebiiHangout! Where Serebii members can chat, hangout and organize clan wars. http://xat.com/SerebiiHangout
Ummm what just happened? Post #450 mentions deadline is Sunday 25th November. I arrange a battle for Sunday with TurboPieFire and suddenly the new round is up and I'm out? Not cool -.-
Here is the link: http://www.serebiiforums.com/showthr...4#post15379074
Alright so we're going to be warring Skies of the Phoenix. The war team will be the following
1) Me
2) Danger
3) Kyro
4) Pi
5) Cosmic Fury
With the subs being (In no specific order)
1) EliteKnight
2) ScizorFTW
3) Wolf Prince
Also, FTW does have a valid point about the tournament round ending early.
Lets win this war guys!!
Come to SerebiiHangout! Where Serebii members can chat, hangout and organize clan wars. http://xat.com/SerebiiHangout


text:
Learn to program in C++ with these exhaustive C++ tutorials, covering everything from defining variables, functions, and custom classes to working with the C++ Standard Template Library.
Explore solutions to common C++ programming challenges, and compare the results with other programming languages, in the Code Clinic series.
Learn the basics of programming with C++.
"Because of your lessons, I can go to "class" every night to learn the new programs that are needed for my work and my other projects." —Frances M.
more from our members »


text:
Buy a Recreational Fishing or Hunting License
Please fill out the "New Customer" form on the bottom of the page.
Renew your Recreational Fishing or Hunting License
Please enter your last name and customer ID then click next.
Print your Recreational Fishing or Hunting License
Please enter your last name and customer ID then click next.
Antlerless Deer Permits
Massachusetts Antlerless Deer Permit Information
Massachusetts Commercial Fishing Permits
All persons who land and sell finfish, shellfish, lobsters, edible crabs or other living marine resources in Massachusetts must have a commercial fishing permit from the Division of Marine Fisheries and must sell only to permitted Massachusetts dealers. Commercial permits may be endorsed for access to the many "regulated" fisheries. Regulated fisheries include most gear types (other than hook fishing), and species that are restricted by quota. For a complete list of regulated fisheries, see the endorsements section below. All commercial permits, except Rod & Reel and Seasonal lobster, may be endorsed for shellfish at no additional cost.
"MassFishHunt" Licensing and Harvest Reporting
MassFishHunt is the official online licensing and game harvest reporting system of the Massachusetts Department of Fish and Game and its Divisions of Fisheries and Wildlife and Marine Fisheries. Through this site you will be able to purchase Massachusetts saltwater and freshwater fishing, hunting, and trapping licenses, permits, and stamps. You will also be able to report seasonal harvests of white-tailed deer, wild turkey, black bear, and other game species.
Recreational Saltwater Permits
Purchase or renew Massachusetts Recreational Saltwater Fishing, For-Hire, & Recreational Lobster Permits.
Recreational Regulations Tables
Recreational regulations summary tables for finfish, sharks, shellfish, lobster, and crabs with additional information on how to measure your catch. Click here for Printable Version of Recreational Finfish Regulations


text:
100% cotton
October 24, 2014
Great fit, nice long sleeves and body
October 18, 2014
Fits well, nice for the holiday i needed it for.
October 02, 2014
Vibrant colour and lovely to wear
September 15, 2014
Lightweight and comfortable.
September 01, 2014
This does not affect your statutory rights
For full terms and conditions please see our Delivery & Returns policy
Thank you for signing up with Mountain Warehouse. So that you only receive information that you're interested in, it would be great if you could take a few moments to fill out the details below:
1. What are you interested in? (Select all that apply)
2. What age are you?
3. Are you?
4. If you would like to receive our seasonal catalogue by post, please enter your postal address:


text:
Originally written on Fox Sports Arizona | Last updated 10/19/12
TUCSON, Ariz. -- Arizona cornerback Shaquille Richardson hears the whispers. He knows the criticism swirling around the UA defense. He knows there are critics to his game, too. They come with the territory. In the cornerback business, there's no room for bad beats, and there have been a few this year for both the Wildcats defense as a whole and Richardson individually. "Theres been a lot of stuff, good and bad," Richardson said of the fans chatter. "I dont focus on it. But Ive heard a lot." Richardson understands hes run hot and cold from game to game. He also wants everyone to know he and the team are doing all they can to get better. More tape review. More observation and analysis. More preparation. He also knows that a lot of the game is measured and dissected between the ears. Mental toughness is paramount; a lack of it can be devastating. "Ive been pretty good about that, but then I learned that I still have progress to make," said Richardson, a 6-foot-1, 190-pound junior...
Comments are closed.
What do you think?To leave a comment, you can:
College Football News
Delivered to your inbox
You'll also receive Yardbarker's daily Top 10, featuring the best sports stories from around the web. Customize your newsletter to get articles on your favorite sports and teams. And the best part? It's free!
Follow us on Twitter
|Best of Yardbarker
|NFL News
|MLB News
Today's Best Stuff
For Bloggers
Join the Yardbarker Network for more promotion, traffic, and money.
Company Info
What is Yardbarker?
Yardbarker is the largest network of sports blogs and pro athlete blogs on the web. This site is the hub of the Yardbarker Network, where our editors and algorithms curate the best sports content from our network and beyond.
|© 2015 Yardbarker, Inc. All rights reserved. Use of this website (including any and all parts and components) constitutes your acceptance of these Terms of Use and Privacy Policy. (What's New?)


text:
A wish made around a campfire 60 years ago led to a 1,100-acre camping center, thousands of scholarships and a $1 million budget for an organization that provides countless opportunities for Iowa youth. To celebrate these and other achievements, the Iowa 4-H Foundation will kick off its 60th anniversary recognition at the Iowa State Fair, Aug. 13-23.
The celebration will begin with the several activities in the 4-H Exhibits Building, according to Shelly Greving, the foundation marketing coordinator. Read more.
This article appeared in August 2009 -- From Jack Payne Newsletter
Copyright ©2015
Iowa State University Extension |
Iowa State University
Contact us
| For Staff |
Nondiscrimination and Information Disclosures |
CMS Admin
Last Updated 8/4/2009